一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
大家好,我是大帅子,今天我们来讲一下,地址栏输入一个地址之后,到底发生了什么事,下面跟着我来看一张图
简单分析一下
下面我们可以分析一下我们在面试的过程中怎么回答这个问题,我相信这个问题是常问的问题
1. 先是浏览器查找域名对应的IP地址
2. 浏览器向服务器发送一个http请求
3. 服务器301重定向
4. 服务器重定向地址,带回另一个www的网址
5. 服务器处理请求,返回一个http的响应
6. 浏览器进DOM树开始构建
7. 浏览器发送HTML的资源 , 显示完成页面 ,发送异步请求
URL解析
大家可以看一下下面这个链接的结构
.scheme: 通信地址,常用的HTTP,ftp等
.host: 主机,服务器域名系统主机名或IP地址
.port: 端口号,整数,可选,省略时使用方案的默认端口,如HTTP的默认端口号是80,HTTPS的端口号是443
.path: 路径,由零或者多个"/"符号隔开的字符串,一般用来表示主机上面的一个目录或者文件地址
.query: 查询,可选,用来给动态路由传递参数,可有多个参数,用"&"符号隔开,每个参数的名和值用"="号隔开
.fragment: 信息片段也可以叫做锚点
三次握手
第一次握手: SYN表示同序列编号
建立连接的时候,发送包(syn=j)到服务器 , 并进入等待状态,等待服务器确认,
第二次握手: 服务器
收到SYN包,必须确认用户的SYN(sun=j+1),同时自己也发送一个 SYN(syn=k) , 即是SYN+ACK包,此时服务器进入等待状态
第三次握手:
客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完成之后,客户端和服务器进入(TCP连接成功)状态,完成了三次握手