从用户输入URL到浏览器呈现页面经过了哪些过程

目录

TCP连接

UDP

HTTP协议

URL

  DNS

HTTP请求发起和响应


不单单只讲这个点,还顺带其他知识点,自己要多学多接触,自己要努力。

TCP连接

TCP:Transmission Control Protocol, 传输控制协议

他有三个行为:

1、客户端发送请求给服务端

2、服务端收到请求,确认请求,返回请求

3、客户端收到确认请求,向服务器发出确认,然后客户端和服务器一起连接(服务器发出我愿意跟你握手的信息,然后客户端收到后也发出我也愿意跟你握手,然后才真正握手)

1、客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。

2、服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK
包,此时服务器进入SYN_RECV状态。

3、客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

UDP

UDP :User Datagram Protocol 用户数据报协议

这个跟TCP有什么不同呢,不同之处在于UDP只是单方面的发出数据,不会进行请求,也就是没有士兵盘查你进城的原因,简单粗暴,常用于qq语音之类的,对数据准确性要求不高的地方

HTTP协议

HTTP协议:Hypertext Transfer Protocol 也叫超文本传送协议

URL

URL:Uniform Resource Locator 统一资源定位符

一个URL是由1、协议   2、域名   3、端口  4、文件名   来组成的,但文件名可以省略

例子:http://168.103.123.465/8080/index.html

结构: 协议:// IP地址(域名)/ 端口 / 文件名

  DNS

DNS:Domain Name Server,域名服务器             

就是把ip地址转化为域名的一种服务器,比如一个百度的地址为:www.1188.1556.11

但是如果用DNS转化后,就会用域名映射IP地址,变成www.baidu.com,这样好记多了

HTTP请求发起和响应

从用户输入URL,到浏览器呈现给用户页面,经过了什么过程 

总共九步,前6步都是请求发送阶段,后3步是服务器响应请求阶段

1、用户输出URL,浏览器获取URL

2、浏览器进行DNS解析

3、根据解析出的IP地址+端口,浏览器(应用层)发起HTTP请求,请求中携带(请求头header、请求体body)

4、请求到达传输层,tcp协议为传输报文提供可靠的字节流传输服务,它通过三次握手等手段来保证传输过程中的安全可靠。通过对大块数据的分割成一个个报文段的方式提供给大量数据的便携传输

5、到网络层, 网络层通过ARP寻址得到接收方的Mac地址,IP协议把在传输层被分割成一个个数据包传送接收方

6、数据到达数据链路层,请求阶段完成

7、接收方在数据链路层收到数据包之后,层层传递到应用层,接收方应用程序就获得到请求报文

8、接收方收到发送方的HTTP请求之后,进行请求文件资源(如HTML页面)的寻找并响应报文

9、发送方收到响应报文后,如果报文中的状态码表示请求成功,则接受返回的资源(如HTML文件),进行页面渲染

——————————————————————————

参考文章:一篇文章搞定前端面试

你可能感兴趣的:(从用户输入URL到浏览器呈现页面经过了哪些过程)