HTTP协议的报文都是ASCLL码,建立在TCP传输协议之上。HTTP的请求主要有三个部分:请求行、请求头和请求体。
1、请求行 即求情的数据格式中的第一行,由三个内容组成:请求方式、URL、HTTP协议的版本。
说明:
1.请求方式:GET or POST
2.URL:请求的目标网址,或者IP地址
3.HTTP协议版本:发送请求的HTTP协议的版本号如:HTTP/1.1
即向服务器发送一些数据和数据标识等等,有很多信息,每个信息都有 "信息名:+信息值"的方式组成,而且每个信息之间必须由空行隔开,代表信息结束。
User-Agent: firefox//表示发送请求的浏览器(请求代理端)是firefoxHost: shop.100.com//表示请求的主机域名(基于域名的虚拟主机就是靠这个头判断的)Cookie:name=itcast//浏览器携带的cookie数据。Content-Type: application/x-www-form-urlencodedContent-Length: 40Connection: Keep-Alive 3、请求体是代理端向服务器发送的请求数据,请求体才是需要给服务器发送的数据,比如要给服务器发送一个数据 1,那么这个数据1 就是请求体。
二、GET请求GET请求的数据会以 URL+参数 的方式进行传输,并且和URL一起传输,这也是GET请求的数据有限的原因之一,且可以缓存。GET请求的数据一般不大于2k~4K这个数值取决于浏览器。
1、GET请求的判断方法 (1) 请求行会体现请求方式,GET请求的请求行一般就是以 “GET” 开头:如 GET /books/?sex=man&name=Professional HTTP/1.1 ;
(2) GET请求的服务器响应,当请求成功后,服务器直接返回:200,再次之前没有其他回应(因为GET请求发送的是一个数据包)
(1) URL 可见,
(2) 数据可以缓存
(3) 通过拼接URL进行参数传递
(4) 请求后的页面后退不会产生影响
(5) 没有请求体
相对于GET请求,POST请求会更加复杂,同时也会比GET请求更加安全。传输数据的时候,URL不会在请求行中出现,而数据放在请求体部分进行传出。因为数据有了独立的请求部分来存储,所以数据的大小是无限的,可以由php.ini 文件来设定。
1、POST请求的判断方法 (1) 请求行会体现请求方式,POST请求的请求行一般就是以 “POST” 开头,且后面只能看到HTTP协议类型:如 POST / HTTP/1.1;
(2) POST请求的服务器响应,当请求成功后,服务器先返回:100,然后再返回200;原因是POST请求会先发送hander,服务器返回100,然后再发送data,服务器返回200。
(1) URL 不可见,安全性高
(2) 数据不可以缓存
(3) 数据放在请求体中发送
(4) 请求后的页面后退,会重新发起请求
(5) 数据大小可以无限大
两者之前的区别体现在各自的特点当中
师承:上官可编程(同抖音号)
免责声明:文章源自网络,版权归原作者所有,如有侵犯联系删除。