一. 简介
HTTP(Hypertext Transfer Protocol)即超⽂本传输协议,其位于应用层,基于TCP/IP协议来完成数据的传输,规定了客户端与服务端的通信格式。
基于“请求-响应”模式
客户端发起请求,服务器收到请求后,服务器才会响应。
无连接
每次连接只处理一个请求。处理完请求后,不是立即断开连接,会有一个等待时间。
无状态保存
不保存请求和响应之间的通信状态。
二. 请求处理流程
用户通过浏览器输入网址(如:http://www.muzi.cn),发起请求(1到2之间隐藏了:通过DNS将域名解析为IP地址);
浏览器发起TCP连接请求,通过IP地址找到对应的web服务器;
服务器接受请求后,通过TCP三次握手建立连接;
浏览器将请求数据打包成HTTP格式的数据包;
浏览器发送请求数据包;
服务器解析HTTP格式的数据包;
执行相应的请求;
将响应结果(可能是图片或者HTML等)打包成HTTP格式的数据包;
将数据包通过网络发送给浏览器;
浏览器解析HTTP格式的数据包(假设数据是HTML);
浏览器呈现HTML响应给用户。
三. HTTP请求方法
八种方法
GET、POST、 HEAD、TRACE、OPTIONS、CONNECT、DELETE、PUT
GET和POST
「功能介绍」
(1)GET主要功能:
从服务器中获取用户所需资源,并将其作为响应返回给客户端。
️是获取资源,故不能修改资源。
️虽然GET也可以上传资源到服务器,但一般不建议。
(2)POST主要功能:
既能够从服务器获取资源,也可以向服务器上传资源。
「上传资源对比」
(1)采用GET方法向服务器上传资源时,一般将数据添加到URL的后面,并使用“?”连接,各个变量之间用“&”连接,由于URL长度存在限制,故采用此方法上传的数据很小,通常是1024Byte左右;
而POST方法传递数据是通过HTTP请求的附件进行的,传送数据量更大,一般不受限。
(2)由于GET方法上传数据时是添加在URL中,故数据被“暴露”,存在安全隐患;故POST安全性更好。
四. HTTP状态码
1. 大类别
2. 细分
502 Bad Gateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
504 Gateway Time-out:作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。