HTTP协议
Pcjmy2022-05-11计算机网络HTTP
HTTP 协议
- HTTP 是什么
- HTTP 请求响应的过程
HyperText Transfer Protocol 超文本传输协议
HTTP 是一个请求-响应协议
HTML、JS、CSS、图片、字体、音频、视频等等文件,都是通过 HTTP(超文本传输协议)在服务器和浏览器之间传输
HTTP 报文
1.HTTP 报文是什么
浏览器向服务器发送请求时,请求本身就是信息,叫请求报文
服务器向浏览器发送响应时传输的信息,叫响应报文
2.HTTP 报文格式
请求
请求头:起始行+首部
请求体
GET 请求,没有请求体,数据通过请求头携带
POST 请求,有请求体,数据通过请求体携带
响应
响应头:起始行+首部
响应体
HTTP 状态码
1.HTTP 状态码是什么
定义服务器对请求的处理结果,是服务器返回的
2.HTTP 状态码的语义
100~199 消息:代表请求已被接受,需要继续处理
websocket
200~299 成功
200
300~399 重定向
http://www.imooc.com/
https://www.imooc.com/
301 Moved Permanently
302 Move Temporarily
304 Not Modified
400~499 请求错误
404 Not Found
500~599 服务器错误
500 Internal Server Error
HTTP 常见状态码及含义
- 200 请求成功
- 301 永久重定向
- 302 临时重定向
- 403 没权限
- 404 表示服务器上没有找到该资源
- 500 服务器错误
HTTP 方法
- 常用的 HTTP 方法
- HTTP 方法的语义
- RESTful 接口设计
1.常用的 HTTP 方法
GET、POST、PUT、DELETE
浏览器发送请求时采用的方法,和响应无关
用来定义对于资源采取什么样的操作的,有各自的语义
2.HTTP 方法的语义
- GET 获取数据
- POST 创建数据
- PUT 更新数据
- DELETE 删除数据
增删改查
这些方法虽然有各自的语义,但是并不是强制性的
3.RESTful 接口设计
一种接口设计风格,充分利用 HTTP 方法的语义
GET 和 POST 方法的对比
语义
发送数据
缓存
安全性
1.语义 GET:获取数据 POST:创建数据
2.发送数据 GET 通过地址在请求头中携带数据 能携带的数据量和地址的长度有关系,一般最多就几 K
POST 既可以通过地址在请求头中携带数据,也可以通过请求体携带数据 能携带的数据量理论上是无限的
携带少量数据,可以使用 GET 请求,大量的数据可以使用 POST 请求
3.缓存 GET 可以被缓存,POST 不会被缓存
4.安全性 ?username=alex GET 和 POST 都不安全
发送密码或其他敏感信息时不要使用 GET,主要是避免直接被他人窥屏或通过历史记录找到你的密码
get用来获取数据,post用来提交数据
get参数有长度限制(受限于url长度,具体的数值取决于浏览器和服务器的限制,最长2048字节),而post无限制
get是明文传输,post是放在请求体中
HTTP header
http 协议中的 header 及含义
- accept:代表客户端希望接受的数据类型
- accept-encoding:浏览器发给服务器,声明浏览器支持的编码类型
- accept-language:表示浏览器所支持的语言类型
- Cache-Control:缓存开关,no-cache 表示禁用缓存
- referer:referer 的正确英语拼法是 referrer。由于早期 HTTP 规范的拼写错误,主要用于防止盗链和恶意请求