YaoCheng8667 的个人博客 YaoCheng8667 的个人博客

记录精彩的程序人生

目录
Http知识总结
/  

Http知识总结

1.报文格式

1.1 Http 请求报文

20181012111654560.png

Http 请求报文包括请求行,请求头部和请求数据

(1) 请求行包括请求方法,url,http 版本号
(2) 请求头部可包含多行,每行由 "字段名 : 值" 格式组成,常见的有

User-Agent : Mozilla/4.0
     Host : xx.xx.xx.xx
     Accept-Encoding : gzip deflate
     Accept-language : English
     Cookie : ...
     ... ...

(3) 请求数据通常没有,可以包含 POST 表单内容等等

1.2 Http 应答报文

20181012172656929.png

Http 应答报文包括状态行,相应头部和请求数据
(1) 状态行包括 Http 版本,状态码和状态值
例如:Http1.1 200 OK
或:Http1.1 404 FileNotFound
(2) 相应头部也可包含多行,格式与 Http 请求报文类似,常见的有

Content-Encoding : gzip
     Connection : keep-alive
     Set-Cookie : ...

(3) 请求数据一般为 Http 的文本等

2. 常见请求类型

GET, POST, HEAD, PUT, DELETE , CONNECT , TRACE , OPTIONS

Http1.0 :

  • GET : 向服务器请求获取资源,若指定获取资源的相关参数,包含在请求行之内。
  • POST : 向服务器提交资源并请求进行处理,常用于提交表单或上传文件内,提交内容具体信息位于请求内容部分。
  • HEAD : 与 GET 类似,不过只返回报文的头部,常用与测试。

Http1.1:

  • PUT : 客户端向服务器端传送指定数据代替指定的文档内容。
  • DELETE : 请求服务器删除指定内容。
  • CONNECT : 常用于设置服务器代理,也即通过代理服务器进行访问。
  • TRACE : 回显服务器的请求,通常用于测试。
  • OPTIONS : 多用于客户端查看服务器性能。

3. 常见的状态码

  • 1xx : 表示接收到请求,正在处理
  • 2xx : 表示是对 HTTP 请求的成功返回
  • 3xx : 服务器重定向
  • 4xx : 表示客户端错误,如请求格式不正确,请求的界面不存在等等
  • 5xx : 表示服务器内部错误

Cookie 和 Session 主要是为了解决 HTTP 无状态性的问题。

4.1 两者的不同

不同点在于 Cookie 保存在客户端的浏览器,实际上是一小段文本信息,多数由建立连接请求时由服务器颁发给客户端,用于下次连接时根据 Cookie 直接辨别 Client 的身份。
Session 主要用于服务器端对会话的存储,当一个客户端连接时,HTTP 服务器会给其分配一个 SessionID,并将该 SessionID 的对应的会话内容存储在内存,客户端可以使用 Cookies 或使用其他请求参数使用该 SessionID 与服务器端进行关联。

4.2 优缺点比较:

Cookie 可能存在安全性的问题,由于 Cookie 在客户端以文本形式存储,可能会被非法获取或篡改,一个可行的解决方案是可以将 Cookie 进行加密。
Session 由于对于每个连接需要开辟空间对会话信息进行存储,可能会加重服务器的负载,影响性能。

下面的博文提供了一个更加详细的解释:

5. Reference:

https://blog.csdn.net/zx_emily/article/details/83024065
https://www.cnblogs.com/l199616j/p/11195667.html
https://segmentfault.com/a/1190000016806111


标题:Http知识总结
作者:YaoCheng8667
地址:https://ycisme.xyz/articles/2020/04/06/1586166364943.html