地址栏里输入一个网址敲下回车会发生什么?

简介: 地址栏里输入一个网址敲下回车会发生什么?

前言:本文中不会牵扯太深的原理内容,只会让你了解一下大概流程,待你以后真正开始学习相关知识的时候,不至于一头雾水。如果你是一个初学者,那么本文会对你有启蒙作用,如果你是一个希望深入了解原理的阅读者,那么可能本文不适合你。

一.我输入了一个网址www.baidu.com


当你输入网址的时候浏览器并不认识这一段信息。那么把你输入的地址,解析成浏览器识别的地址的这一过程就叫做DNS解析。D:domain 领域 ,N:name ,S:system 域名系统 如果你开始了解到这一步的话,我相信你对于 对象这个概念应该很熟悉了。这个系统对于初学者来说,你也可以把它当作一个对象来看待。也是key域名value实际ip地址 的映射关系。

DNS {"www.baidlu"="1xx.x.x.x","localhost"="126.0.0.1"...}

这个对象存放着互联网所有的 域名和实际IP地址的映射关系。为什么要有域名就好比你手机为什么要有通讯录一样,你可以直接把所有电话号码都记下,但是没必要也不方便,比如你给10086起名为女朋友,因为只有10086才会在节假日给你祝福。你也可以直接通过女朋友这个联系人来给10086打电话。DNS系统存在的意义也是这样的。

二.TCP的三次握手


传输控制协议(英语:Transmission Control Protocol 你需要首先明白的一点是DNS解析以后仅靠拿到手的真实ip地址是干不了任何事的。

第一次握手:首先浏览器会发送一个SYN包给服务器,SYN的解释节选自百度百科,你暂时不需要深入了解这个名词到底什么意思。它是用来确定服务器是否在吗(脑子第一时间想出来这个词,并且觉得还行!)这是否像极了你追你女朋友时第一次聊天,第一句话“在吗?”。

image.png

第二次握手 :然后如果服务器在!那么服务器会发送 SYN和ACK包给浏览器。也就是你女朋友回复你了,然后你们才可以有下一步的话题。 ACK代表的意思更像聊天里的:我在!请你继续说

image.png

第三次握手 :这次握手是浏览器给服务端说的话,浏览器端:ok我也在。

image.png

到这里你仅仅只是用到了 baidu.com你输入到地址栏里的这几个代码。

image.png

到这里你要知道,浏览器是所求数据的那一方,浏览器是给予你数据的一方,你现在仅仅是知道了,你所求服务器的真实地址(DNS)和建立连接并且确定建立链接成功(三次握手)。接下来才是我们的重量级前面代码http的showtime。

http:hyper text transfer protocol超文本传输协议。

它的主要作用就是用来约定客户端和服务器端沟通的方式,来传输数据。你可以抽象的这样认为。A和B在进行一项交易,A说咱们都用中文交流,B说:咱都用英语交流。结果谁都不肯屈服谁,这生意没法做。这时候出来一个神秘组织规定,这项交易我们统一规定用法语交流,谁不遵守谁退出。所以你也没必要纠结为什么,http只是规定而已,它并没有具体的功能。

即然你是所求(request)的一方,那么你就会有你想要东西的具体内容。这个过程和你去超市买东西一样,你确定了超市的真实地址,并且确定了超市在营业期间。ok,接下来就是你确定自己具体要买哪些东西的时候了。http协议有四部分组成,请求行,请求头,空行,请求数据。(具体作用本文不讨论,请自行深入了解)当服务器收到你的请求后,会给你一个回应response。也有四部分组成,状态行,响应头部,空行,相应数据

接下来浏览器就会开始解析相应数据,html和css和js的文件。

至此,大概流程就是这些,这期间还有很多知识需要你深入了解。文本只是给你一个概念。

相关文章
|
机器学习/深度学习 并行计算 PyTorch
TensorRT部署系列 | 如何将模型从 PyTorch 转换为 TensorRT 并加速推理?
TensorRT部署系列 | 如何将模型从 PyTorch 转换为 TensorRT 并加速推理?
1834 0
|
存储 编译器
[Eigen中文文档] 深入了解 Eigen - 类层次结构
本页面介绍了Eigen类层次结构中 Core 类的设计及其相互关系。一般用户可能不需要关注这些细节,但对于高级用户和Eigen开发人员可能会有用。
519 0
|
5月前
|
存储 运维 安全
诈骗背后:一场由Nacos漏洞引发的连锁危机
Nacos 是一个开源的动态服务发现、配置管理和服务管理平台,广泛应用于云原生架构中。然而,在其不同版本中曾暴露出多个安全漏洞,如未授权访问、Token 伪造、权限绕过等,这些漏洞可能导致敏感数据泄露、业务中断以及企业声誉受损。企业在使用 Nacos 时,应尽量采用最新稳定版本,并强化配置文件的安全性设置;在可能的情况下,限制网络访问范围,仅对可信 IP 开放服务,以全面提升 Nacos 的安全性。
|
存储 移动开发 HTML5
SessionStorage 和 LocalStorage 有什么区别?
SessionStorage 和 LocalStorage 有什么区别?
579 3
|
存储 Java 开发者
HashSet和TreeSet教你重新认识Java集合的无序与有序
【10月更文挑战第14天】本文深入探讨了Java集合框架中的HashSet和TreeSet,解析了它们分别实现无序和有序存储的机制。通过理解HashSet基于哈希表的无序特性和TreeSet利用红黑树实现的有序性,帮助开发者更好地选择合适的集合类型以满足不同的应用场景。
259 2
|
网络架构
若依修改 :id 不跳转注释的资料,路由配置:id不跳转修改,若依的store的permission.js对动态路由有控制
若依修改 :id 不跳转注释的资料,路由配置:id不跳转修改,若依的store的permission.js对动态路由有控制
若依修改 :id 不跳转注释的资料,路由配置:id不跳转修改,若依的store的permission.js对动态路由有控制
|
存储 监控 NoSQL
|
存储 JSON NoSQL
[Redis]——RedisTemplate的两种序列化方式
[Redis]——RedisTemplate的两种序列化方式
722 0