是一个协议,类似于合同 - 规定双方进行交互的一些规则、要求
**请求行:**GET /day22-http/demo.php HTTP/1.1
请求行中包含请求方式,url,协议的版本
请求头 - 键值对
Host: localhost ---- 主机名
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36 ---- 浏览器信息
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8 ---- 希望接收到的数据类型
Referer: http://localhost/day22-http/3-%e8%af%b7%e6%b1%82%e6%8a%a5%e6%96%87.html — 从哪里请求的
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
请求空行 — 换行
请求主体 — 请求带过来的数据
完整的请求报文,http协议规定:请求必须有请求报文,必须包含,请求方式,请求url,请求的协议的版本,请求的主机名,希望接收的数据类型。。。。
规定了怎么请求,请求报文,请求行,请求头,请求空行,请求主体
响应报文:服务器对客户端做响应的说明文档
包含:响应行、响应头、响应主体
响应 - response
响应行:HTTP/1.1 200 OK
协议版本、响应状态码、响应状态
http协议中,有一些数字代表请求响应的状态,
/*
101~199 代表正在请求 - 请求没有完成
200~299 代表请求成功
300~399 代表重定向
400~499 代表客户端错误 – 404 403
500~599 代表服务器错误
*/
键值对:响应头
Date: Tue, 17 Mar 2020 02:51:48 GMT 服务器的时间
Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
X-Powered-By: PHP/5.4.45
Content-Length: 3
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
response代表响应主体:给客户端响应的信息
http规定服务器对客户端怎么做响应,响应什么信息
get请求一般用于查询
post请求方式一般用于新增
put 和post差不多也是携带数据 - 更新、修改
delete 请求一般用于删除
**首先:**GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同,当然GET与POST都有自己的语义,不能随便混用
对参数的数据类型,GET只接受ASCII字符,而POST没有限制,允许二进制。
GET在浏览器回退/刷新时是无害的,而POST会再次提交请求。
GET以url编码,而POST支持多种编码方式。(所以GET在传输的大小上会有限制,而POST理论上不会有限制)#HTTP并没规定大小,只是因为服务器与浏览器的原因做了限制,所以POST也有设置,只不过非常大。
POST比 GET 更安全,因为GET参数直接暴露在URL上,POST参数在HTTP消息主体中,而且不会被保存在浏览器历史或 web 服务器日志中。 (相对而言,反正我感觉前端啥都不安全)
GET产生一个TCP数据包;POST产生两个TCP数据包。
#这个之间的传输时间差别基本可以忽略,但两次传输在网络环境差的情况下,验证数据包的完整性却更好,并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次
https://mp.weixin.qq.com/s?src=11×tamp=1584858683&ver=2231&signature=SWFAblIvkODZGnRNYW-Bya0V23zd0Mt5CLafky91eWgPVEH2-dl62AN4N0kOc2OYwunDFbE7BD6Z*JKFHnGFdrUWedtkJKwetbGqN7c1Jxix36fNovers-7LeHlX4HBv&new=1
(这里面有详细的讲解)
小故事,emmm,先欠着。来一句暖男语录吧:
越长大,越知道,做事不容易,越知道,每个人都有难处,也就越不再随随便便发表评论,或者瞧不起谁。这不是虚伪,而是懂得体谅,温柔地和这个世界相处。(我想做渣男,可惜我没有女朋友,虽然我有很多对象new)。