图解HTTP系列--(二)

356 阅读3分钟

一、HTTP报文

  主要包括报文首部和报文主体。 1、请求报文和响应报文结构

2、请求报文和响应报文结构实例
3、编码提升传输效率   通常,报文主体等于实体主体。只有当传输中进行编码操作时,实体主体的内容发生变化,才导致他和报文主体产生差异。
如图,即为压缩传输,是由服务端对实体内容进行编码压缩,然后发送给客户端,再由客户端接受兵负责解码。 常用的内容编码由一下几种

  • gzip(GNU zip)
  • compress(UNIX系统的标准压缩)
  • deflate(zlib)
  • identity(不进行编码)

二、HTTP/1.1的首部字段

HTTP/1.1规范定义了如下47种首部字段

  • 通用首部字段
  • 请求首部字段
  • 响应首部字段
  • 通实体首部字段

三、HTTP状态码

HTTP的状态码是用来描述请求的处理结果。记录在内的状态码多达40种,若加上万维网附加的就达到60余种。下面我们主要介绍下具有代表性的14种。

1、2XX 成功

  • 200 OK-->请求被服务端正常处理
  • 204 No Content -->请求成功,但没有资源返回
  • 206 Partial Content -->对资源某一部分的请求

2、3XX 重定向

  • 301 Moved Permanently-->永久重定向。资源已被分配到新的URI
  • 302 Found -->临时重定向。资源的URI已临时定位到其他位置
  • 303 See Other -->对资源某一部分的请求
  • 304 Not Modified -->资源找到,但不符合要求。用于请求报文中含有If参数的请求
  • 307 Temporary Redirect -->临时跳转。被请求的资源在临时从不同的URL响应请求

  当301、302、303响应的状态码返回时,几乎所有的浏览器都会把POST请求改成GET请求,并删除请求报文内的主体,之后请求会自动再次发送。   301、302标准是禁止将POST方法改成GET方法的,但实际使用时大家都会这么做。

3、4XX 客户端错误

  • 401 Unauthorized-->请求报文中存在语法错误
  • 403 Forbidden -->请求资源的访问被服务端拒绝
  • 404 Not Found -->没有请求的资源

4、5XX 服务端错误

  • 500 Internal Server Error-->服务端执行请求时发生错误
  • 502 Bad Gateway -->错误网关
  • 503 Service Unavailable -->服务端暂时处于超载或者正在进行维护 状态码的内容大致就给大家整理这么多,大家也可以参考下面的链接去理解 两张趣图助你理解状态码的含义~

    总结

    这篇文章主要总结了第三章-第六章的内容,其中我省略掉了部分内容(如:第五章的Web服务器的内容),比较重要的是第六章对每个字段的一些详细说明,由于内容比较多,就不放在博文中(不然内容又变得又臭又长)。所以,如果有要了解详情字段的可以下载该书的PDF进行了解。

那本期内容就到这边,下期将整理HTTPS的内容 注:百度云链接:《图解HTTP》 往期回顾: 图解HTTP系列--(一) - 掘金