1 响应报文

  1. --- 响应行/状态行 ---
  2. HTTP/1.1 200 OK # HTTP协议版本 状态码 状态描述
  3. --- 响应头 ---
  4. Server: Tengine # 服务器名称
  5. Content-Type: text/html; charset=UTF-8 # 内容类型
  6. Transfer-Encoding: chunked # 发送给客户端内容不确定内容长度,发送结束的标记是0\r\n; Content-Length表示服务端确定发送给客户端的内容大小,但是二者只能用其一。
  7. Connection: keep-alive # 和客户端保持长连接
  8. Date: Fri, 23 Nov 2018 02:01:05 GMT # 服务端的响应时间
  9. --- 空行 ---
  10. --- 响应体 ---
  11. <!DOCTYPE html><html lang=“en”> …</html> # 响应给客户端的数据

2 HTTP状态码

  • 1xx: 提示信息, 表示现在是协议处理的中间阶段, 还有后续操作
  • 2xx: 成功, 报文已经收到并被正确处理
    • 200: OK, 请求成功
    • 204: NO CONTENT, 成功处理请求, 但响应报文中body为空
  • 3xx: 重定向, 资源位置变动
    • 301: Move Permanently, 请求的资源不存在, 需要改用新的URL再次访问
    • 302: Found, 请求的资源还在, 但暂时需要用另一个URL访问
    • 304: Not Modified, 请求的资源未修改, 让客户端自己找缓存文件
  • 4xx: 客户端请求报文有误
    • 400: Bad Request, 客户端请求报文有错误
    • 401: Unauthorized, 客户端身份认证不通过
    • 403: Forbiden, 拒绝执行客户端的请求
    • 404: Not Found, 找不到客户端请求的资源
    • 405: Method Not Allowed, 请求方法不被允许
  • 5xx: 服务器错误

    • 500: Internal Server Error, 服务器处理请求时出错
    • 501: Not Implemented, 请求的功能暂不支持
    • 502: Bad Gateway, 反向代理服务器出错
    • 503: Service Unavailable, 服务器繁忙, 无法响应

      3 响应头字段

  • Content-length: 数据长度

  • Content-type: 告诉客户端本次数据的格式, 如image/png
  • Content-encoding: 返回的数据使用的压缩格式, 如gzip
  • Date: 服务器的响应时间
  • Server: web服务器的名称和版本号