1.http协议特点
- 简单快速:URI 统一资源符是固定的
- 灵活:
- 无连接:连接一次就会断开
- 无状态:客户端、服务端两种身份
2.请求报文
请求行(http 方法,页面地址,请求方法)、请求头(参数key:value)、空行、请求体
3.响应报文
状态行、响应头、空行、响应体
4.HTTP方法
- GET -- 获取资源
- POST -- 传输资源
- PUT -- 更新资源
- DELETE -- 删除资源
-
HEAD -- 获取报文首部
5.HTTP get和post区别
- GET在浏览器回退时无害,POST会再次请求
- GET产生的URL地址可以被收藏,而POST不可以
- GET请求会被浏览器主动缓存,而POST不会,除非手动设置
- GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会
- GET请求在URL中传输的参数是有长度限制的,而POST没有
- GET参数暴露在URL里,没有POST安全
- GET参数 通过 URL传递,POST放在request body里
6.HTTP状态码
- 1xx:指示信息,表示请求已经接收,继续处理
- 2xx:成功,表示请求已经被成功接受
- 3xx:重定向,要完成请求必须进行更进一步的操作
- 4xx:客户端错误,请求有语法错误或者请求无法实现
- 5xx:服务器错误,服务器未能实现合法的请求
- 200 OK:客户端请求成功
- 302 :重定向,所请求的页面临时转移到新的url
- 304: 客户端有缓存的文档并发出一个条件性的请求,服务端告诉用户,原来缓存的文档还可以继续使用
- 403: 请求的资源被禁止访问
- 404: 请求资源不存在
- 500:服务器错误
- 503: 服务器临时过载或者当机
7.持久连接
仅HTTP1.1支持
HTTP使用“请求-应答”模式,每个请求,客户端和服务器都会新建一个连接,完成后连接断开
使用Keep-Alive(持久连接、连接重用)时,Keep-Alive会使客户端和服务器的连接持续有效,当出现对服务器的后继请求,避免重新建立连接
8.管线化
仅HTTP1.1支持,只有GET和HEAD请求能够进行管线化,POST会有限制
持久连接情况下,请求一次响应一次
请求1-> 响应1-> 请求2 -> 响应2-> 请求3-> 响应3
将请求打包发送
请求1-> 请求2 -> 请求3-> 响应1-> 响应2-> 响应3