http - 超文本传输协议

http - 超文本传输协议

概念:

​ 是一个协议,类似于合同 - 规定双方进行交互的一些规则、要求

请求报文

**请求行:**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的区别 (常见的面试题)

**首先:**GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同,当然GET与POST都有自己的语义,不能随便混用

  1. 对参数的数据类型,GET只接受ASCII字符,而POST没有限制,允许二进制。

  2. GET在浏览器回退/刷新时是无害的,而POST会再次提交请求。

  3. GET以url编码,而POST支持多种编码方式。(所以GET在传输的大小上会有限制,而POST理论上不会有限制)#HTTP并没规定大小,只是因为服务器与浏览器的原因做了限制,所以POST也有设置,只不过非常大。

  4. POST比 GET 更安全,因为GET参数直接暴露在URL上,POST参数在HTTP消息主体中,而且不会被保存在浏览器历史或 web 服务器日志中。 (相对而言,反正我感觉前端啥都不安全)

  5. GET产生一个TCP数据包;POST产生两个TCP数据包。

    #这个之间的传输时间差别基本可以忽略,但两次传输在网络环境差的情况下,验证数据包的完整性却更好,并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次

https://mp.weixin.qq.com/s?src=11&timestamp=1584858683&ver=2231&signature=SWFAblIvkODZGnRNYW-Bya0V23zd0Mt5CLafky91eWgPVEH2-dl62AN4N0kOc2OYwunDFbE7BD6Z*JKFHnGFdrUWedtkJKwetbGqN7c1Jxix36fNovers-7LeHlX4HBv&new=1

(这里面有详细的讲解)


小故事,emmm,先欠着。来一句暖男语录吧:

​ 越长大,越知道,做事不容易,越知道,每个人都有难处,也就越不再随随便便发表评论,或者瞧不起谁。这不是虚伪,而是懂得体谅,温柔地和这个世界相处。(我想做渣男,可惜我没有女朋友,虽然我有很多对象new)。


http - 超文本传输协议