HTTP 一次完整的HTTP请求过程-六个过程
2022-10-10 本文已影响0人
垂直居中的句号
- 域名解析:首先浏览器会解析域名对应的IP地址。
- 发起TCP的3次握手
(1)拿到域名对应的IP地址后,User-agent 会以一个随机端口(1024<端口<65535)向服务器的WEB程序发起TCP的连接请求。这个连接请求到达服务器端后,进入到网卡,然后进入到内核的TCP/IP协议栈。
(2)客户端先发送连接试探,ACK=0表示确认号无效,SYN=1表示这是连接请求或连接接受报文。同时表示数据报不能接受数据,seq=x表示client 自己的初始序号, 之后client进入到syn_sent状态,等待服务器的回复。
(3)服务端接收到请求后,如同意建立连接则向客户端发送确认消息,SYN和ACK都置为1,ack = x+1表示期望收到对方下一个报文段的第一个数据字节序号是x+1,seq=y 表示server自己的初始序号,之后服务器进入syn_rcvd,表示服务器已经收到Client的连接请求,等待client的确认。
(4) 客户端收到确认后还需再次发送确认,同时携带要发送给Server的数据,ACK 置1 表示确认号ack= y + 1 有效(代表期望收到服务器的第1个包),Client自己的序号seq= x + 1(表示这就是我的第1个包,相对于第0个包来说的),一旦收到Client的确认之后,这个TCP连接就进入Established状态,就可以发起http请求了。

- 建立TCP连接后发起http请求
4.服务器端响应http请求,浏览器得到html代码
服务器端WEB程序接收到http请求以后,就开始处理该请求,处理之后就返回给浏览器html文件。
1xx: 信息性状态码
100, 101
2xx: 成功状态码
200:OK
3xx: 重定向状态码
301: 永久重定向, Location响应首部的值仍为当前URL,因此为隐藏重定向;
302: 临时重定向,显式重定向, Location响应首部的值为新的URL
304:Not Modified 未修改,比如本地缓存的资源文件和服务器上比较时,发现并没有修改,服务器返回一个304状态码,告诉浏览器,你不用请求该资源,直接使用本地的资源即可。
4xx: 客户端错误状态码
404: Not Found 请求的URL资源并不存在
5xx: 服务器端错误状态码
500: Internal Server Error 服务器内部错误
502: Bad Gateway 前面代理服务器联系不到后端的服务器时出现
504:Gateway Timeout 这个是代理能联系到后端的服务器,但是后端的服务器在规定的时间内没有给代理服务器响应
- 浏览器解析html代码,并请求html代码中的资源
6.浏览器对页面进行渲染呈现给用户
参考博客 https://blog.csdn.net/jieweiwujie/article/details/120110734
