(!!!转载)HTTP工作过程(浏览器输入URL到返回HTML页面都经历了什么)
转载自:https://www.cnblogs.com/JCpeng/p/15018957.html(SDN大佬🧍♂️)
HTTP工作过程(浏览器输入URL到返回HTML页面都经历了什么)
超文本传送协议(HyperText Transport Protocol,HTTP)是互联网上应用最为广泛的一种网络协议,它工作在应用层,使用TCP的80号端口提供服务。并且HTTP是工作在客户/服务器(C/S)模式下、基于TCP的协议。客户端是终端用户,服务端是网站服务器。
客户端通过使用Web浏览器、网络爬虫或其他工具,发起一个到服务器上指定端口(默认端口为80)的HTTP请求。一旦收到请求,服务器向客户端发送响应消息,消息的内容可能是请求的文件、错误消息或一些其他信息。客户端请求和连接端口须大于1024。
下图展示了客服端打开浏览器访问www.baidu.com(第一次访问,后续的访问可直接从本地hosts文件提取地址对应的IP不需要向DNS服务器请求解析)所发送的事件:

HTTP使用TCP而不是UDP的原因在于,打开一个网页必须传送很多数据,而TCP协议提供面向连接的可靠传输控制,可以按顺序组织数据,并且期间可以对乱序数据进行纠正。
补充两个小知识点
-
http协议和https协议的区别
1.http是明文传输,https是采用SSL(采用了RC4、MD5以及RSA等加密算法)加密传输协议,除了包头,其他内容加密传输.
2.HTTPS协议需要ca申请证书
3.端口号不一样,前者是80,后者是443.
4.HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。HTTPS 比 HTTP 要更耗费服务器资源.
-
tcp与udp的区别
1、TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
4、UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。
(拥塞控制三种方法:缓冲区预分配法、分组丢弃法、定额控制法)
5、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。

浙公网安备 33010602011771号