图解HTTP

图解HTTP

HTTP方法

  • GET 获取资源
  • POST 传输实体主体
  • PUT 传输文件
  • HEAD 获得报文首部
  • DELETE 删除we那件
  • OPTIONS 询问支持的方法
  • TRACE 追踪路径
  • CONNECT 要求用隧道协议连接代理 (CONNECT 代理服务器名:端口号 HTTP版本)

持久连接

  • HTTP keep-alive 或 HTTPconnection reuse

管线化

  • 不等待响应,直接发送下一个请求

HTTP 报文

  • 请求报文和响应报文
  1. 请求行
  2. 请求首部字段
  3. 通用首部字段
  4. 实体首部字段
  5. 其他
  6. 空行
  7. 报文主体

  1. 状态行
  2. 响应首部字段
  3. 通用首部字段
  4. 实体首部字段
  5. 其他
  6. 空行
  7. 报文主体

压缩传输的内容编码

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

发送多种数据的多部分对象集合

  • MIME multipart/form-data multipart/byteranges
  • 获取部分内容的范围请求 range

返回结果的HTTP状态码


状态码 类别 原因短语
1XX Informational(信息性状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务端无法处理请求
5XX Server Error(服务端错误状态码) 服务端处理请求错误
  • 200 ok

  • 204 No Content 请求处理成功! 但没有资源可返回

    返回204 浏览器显示的页面不发生更新

    (一般在只需要从客户端往服务器发送信息,而客户端不需要发送新信息内容的情况下使用.) 返回204 浏览器的页面不

  • 206 Partial Content

    该状态码标识客户端进行了范围请求,而服务器成功执行了这部分的GET请求.

    响应报文中包含由Content-Range 指定范围的实体内容.

  • 301 Moved Permanenttly 永久重定向

    客户端需要进行书签引用的变更

    资源的URI 已更新,你也更新下你的书签引用吧

  • 302 Found 临时重定向

    该状态表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问.

  • 303 See Other

    服务器-资源的URI已更新,你是否能临时按新的URI访问?

    303 和 302 有着相同的功能,但303 状态码明确表示客户端应当采用GET方法获取资源.

  • 304 Not Modified 服务器端的资源未改变,可直接使用客户端未过期的缓存

    304 返回时不包含任何响应的主体部分

  • 307 Temporary Redirect 临时重定向

    307 会遵照浏览器标准,不会从POST变成GET

  • 400 Bad Request

    该状态标识请求的报文中存在语法错误.

  • 401 Unauthorized

    该状态表示发送的请求需要有通过HTTP认证.

  • 403 Forbidden

    该状态码表明对请求资源的访问被服务器拒绝了.

  • 404 Not Found 服务器没有请求的资源

    也可以在服务端拒绝请求且不想说明理由时使用.

  • 500 Internal Server Error 貌似,内部资源出故障了…

    该状态码表明服务器端在执行请求时发生了错误.

  • 503 Service Unavailable

    表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求.

    如果实现得知解除以上状况需要的时间,最好写入Retry-After 首部字段再返回给客户端.


文章作者: 张曙
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 张曙 !
评论