HTTP知识点小结

一、 HTTP协议的主要特点

简单快速: 每个资源的 URI都是固定的,输入到地址栏便可以访问到。
灵活: 通过不同HTTP的头可以完成不同数据类型的数据的传输。
无连接:连接一次就会断开,不会保持连接
无状态:服务端本身不会保存客户端的身份等信息。

二、HTTP报文的组成部分

HTTP报文分为请求报文和响应报文。
请求报文:

  1. 请求行:HTTP方法、页面地址、HTTP协议及版本
  2. 请求头:key-value值告诉服务器需要哪些内容
  3. 空行:请求头的结束标志
  4. 请求体
    响应报文:(参考请求报文)

三、HTTP方法

GET POST PUT DELETE
HEAD => 获得报文首部
GET和POST的比较:(重要)

  • GET在浏览器回退时是无害的,而POST会再次提交请求
  • GET请求会被浏览器主动缓存,而POST不会,除非手动设置
  • GET请求参数会被完整保留在浏览器历史记录中,而POST不会
  • GET请求只能进行url编码,而POST支持多种编码方式
  • GET请求在URL中的参数是有长度限制的,POST没有限制
  • GET参数通过URL传递,POST放在Request body中

四、HTTP 状态码

1XX :指示信息-表示请求已接受、继续处理
2XX :成功 - 表示请求已被成功接收
3XX :重定向
4XX : 客户端错误
5XX : 服务端错误

常见:
200 OK: 客户端请求成功
206 Partial Content: 客户发送了一个带有Range头的GET请求,服务器完成了它

301 Moved Permamently: 已经永久转至新的url
302 Found: 临时转至新的url
304 Not Modified: 服务器告诉客户,原来的缓存可以继续使用

400 Bad Request: 客户端有语法错误,服务器不能理解
401 Unauthorized: 请求未经授权
403 Forbidden: 对被请求页面的访问被禁止
404 Not Found: 请求资源不存在

500 Interval Server Error 服务器错误,原来的缓存还能使用

五、持久连接(Keep-Alive)和管线化

仅HTTP1.1支持持久连接。
当使用Keep-Alive模式时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后续请求时,Keep-Alive功能避免了建立或者重新建立连接。

持久连接的情况下,
普通连接的消息传递:
请求1 => 响应1 =>请求2 => 响应2
管线化的消息传递:
请求1 => 请求2 => 响应1 => 响应2

猜你喜欢

转载自blog.csdn.net/weixin_42098339/article/details/87897442