HTTP简介
HTTP是一个请求-响应协议,每一次前后端通信,前端需要主动向后端发出请求,后端收到前端的请求后,可以给出响应
HTTP 报文
- 浏览器向服务器发送请求时,请求本身就是信息,叫请求报文
- 服务器向浏览器发送响应时传输的信息,叫响应报文
HTTP 报文格式
- 请求报文:
请求、请求头(起始行+首部)、请求体 - 响应报文:
响应、响应头(起始行+首部)、响应体
HTTP 方法
HTTP 方法是浏览器发送请求时采用的方法,和响应无关
-
GET获取数据
比如:获取资源(css、html等文件) -
POST创建数据
比如:注册 -
PUT更新数据
比如:修改个人信息,修改密码 -
DELETE删除数据
比如:删除一条评论
注:PUT和DELETE用得较少。一般,除了获取用GET方法外,其他都用POST方法
HTTP 状态码
HTTP 状态码:服务器对请求的处理结果,是服务器返回的.
-
100~199消息:代表请求已被接受,需要继续处理
-
200~299:请求响应成功
-
300~399:重定向
301:Moved Permanently
302:Move Temporarily
304:Not Modified -
400~499:请求错误
400: Bad Request
404:Not Found -
500~ 599:服务器错误
500: Internal Server Error
GET方法和POST方法对比
(1)语义
- GET:获取数据;
- POST:创建数据
(2)发送数据
- GET通过地址在请求头中携带数据,能携带的数据量和地址的长度有关系,一般最多就几K
- POST既可以通过地址在请求头中携带数据,也可以通过请求体携带数据,能携带的数据量理论上是无限的
- 携带少量数据,可以使用GET请求,大量的数据可以使用POST请求
(3)缓存
- GET可以被缓存,POST不会被缓存
- GET请求以及它携带的数据是通过地址来发送的,而地址一般会被浏览器缓存;
- POST请求一般是通过请求体来携带数据,所以一般不会被缓存
(4)安全
- GET和POST都不安全
- 发送密码或其他敏感信息时不要使用GET,主要是避免直接被他人窥屏(网址上有数据)或通过历史记录(GET请求可以被缓存)找到你的密码