1.什么是HTTP
就是HyperText Transfer Protocol,超文本传输协议
HTML是超文本标记语言
超文本:
原先一个个单一的文本,通过超链接将其联系起来。由原先的单一文本变成了可无限延伸扩展的超级文本、立体文本
HTML、JS、CSS、图片、字体、音频、视频等文件,都是通过HTTP(超文本传输协议)在服务器和浏览器之间传输
2.HTTP报文
1.什么是HTTP报文
- 浏览器向服务器发送请求时,请求本身就是信息,叫请求报文
- 服务器向浏览器发送响应时传输的信息,叫响应报文
2.HTTP报文格式
请求报文: 包括请求头和请求体
- 请求头:起始行+首部
- 请求体
响应报文: 包括响应头和响应体
- 响应头:起始行+首部
- 响应体
注意:
GET请求,没有请求体,数据是通过请求头携带的
POST请求,有请求体,数据是通过请求体携带的
3.HTTP方法
浏览器发送请求时采用的方法,和响应无关
1.常用的HTTP方法
GET、POST、PUT、DELETE
每个方法用来定义对于资源采取什么样的操作,有各自的语义
2.HTTP方法的语义
- GET获取数据
用途: 获取资源,文件 - POST创建数据
用途: 注册 - PUT更新数据
用途: 修改个人信息,修改密码 - DELETE删除数据
用途: 删除评论
上面四种方法就是增删改查
但是,这些方法虽然有各自的语义,但是并不是强制性的
例如,在很多情况下都是使用的POST方法
4.GET和POST的对比
1.语义的对比
上面已说明:
1.GET获取资源
2.POST创建数据
2.发送数据
GET:
GET 通过地址在请求头中携带数据,因此能携带的数据量和地址的长度有关,一般最多就几K
POST
POST既可以通过地址在请求头中携带数据,也可以通过请求体携带数据,因此能携带的数据量理论上是无限的
携带少量数据,可以使用GET请求,大量的数据可以使用POST请求
3.缓存
GET可以被缓存
POST不可以被缓存
4.安全性
实际上GET和POST都不安全
只不过GET更容易被人看到,所以GET比POST更不安全
发送密码或其他敏感信息时,不要使用GET,主要是避免直接被他人窥屏或通过历史记录找到你的密码
5.HTTP状态码
1.什么是HTTP状态码
定义服务器对请求的处理结果,是服务器返回的
2.HTTP状态码的语义
100~199 信息提示
代表请求已被接受,需要继续处理
200~299 成功
这类状态代码表明服务器成功地接受了客户端请求。
300~399 重定向
客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同页面,或通过代理服务器重复该请求。
400~499 客户端错误
状态码详细可以看这里
https://www.runoob.com/http/http-status-codes.html