http请求和响应

请求

  1. 请求行(Request Line)

    • 方法:HTTP 动作,如 GET、POST、PUT、DELETE 等。
    • 路径:请求的资源路径(包括查询字符串)。
      • 查询参数(Query Parameters):键值对 ,附加在 URL 中,用于向服务器传递额外信息(如 ?key=value
      • 路径和域名
        路径:请求的资源路径。
        域名:请求的目标主机名(通常在 Host 头部字段中指定)。
        比如 完整的URL: http://example.com/path/resource?query=value&key=value2
        请求 URI(Request-URI):/path/resource?query=value&key=value2
        路径:/path/resource
        查询参数:query=value&key=value2
        域名(Domain)example.com
    • HTTP 版本:如 HTTP/1.1 或 HTTP/2。
  2. 请求体(Body)

    • 格式:可能包括 JSON、XML、表单数据、文件等。
  3. Headers

    • Host:目标主机名(通常自动添加)。
    • Content-Type:请求体的媒体类型。
    • Content-Length:请求体的长度。
    • Authorization:用于身份验证的凭据。
    • Accept:客户端能处理的媒体类型。
    • User-Agent:客户端的应用程序或浏览器信息。
    • Cookie:存储在浏览器中的数据,与请求一起发送。内容是键值对
      所有符合条件的Cookies都会发送
      • 同源政策:只有与请求的域名和路径匹配的 cookies 会被发送。如果 cookies 设置了特定的域名或路径限制,则只有满足这些限制的 cookies 才会随请求发送。(跨域请求不会主动发送)
      • 未过期的 cookies:只有未过期的 cookies 会被发送。如果 cookies 已过期,它们将不会被发送。
      • 符合 Secure 和 SameSite 标志:
        Secure:设置了 Secure 标志的 cookies 仅在 HTTPS 请求中发送。
        SameSite:SameSite 属性控制 cookies 的跨站请求行为。它可以是 Strict(仅在同源请求中发送)、Lax(在某些跨站请求中发送)或 None(在所有请求中发送,需要 Secure 标志)。

HTTP 响应

响应行(Status Line)

  • HTTP 版本:如 HTTP/1.1、HTTP/2。
  • 状态码:表示响应的状态,如 200(成功)、404(未找到)、500(服务器错误)。
  • 状态短语:与状态码相关的描述性文本,如 "OK"、"Not Found"、"Internal Server Error"。

响应头(Response Headers)

缓存控制相关

  • Cache-Control:控制缓存行为的指令(如 Cache-Control: no-cacheCache-Control: max-age=3600)。
  • Expires:指定响应体的过期时间(如 Expires: Wed, 21 Oct 2024 07:28:00 GMT)。
  • ETag:资源的唯一标识符,用于缓存验证(如 ETag: "abc123")。
  • Last-Modified:资源上次修改的时间,用于缓存验证(如 Last-Modified: Tue, 12 Sep 2024 08:00:00 GMT)。
  • Vary:指示缓存机制应考虑哪些请求头(如 Vary: Accept-Encoding)。

Cookie 相关

  • Set-Cookie:用于向客户端设置 cookies(如 Set-Cookie: sessionId=abc123; Path=/; HttpOnly)。

内容相关

  • Content-Type:指示响应体的媒体类型(如 Content-Type: text/htmlContent-Type: application/json)。
  • Content-Length:响应体的长度(以字节为单位,如 Content-Length: 1234)。
  • Content-Encoding:指示响应体的编码方式(如 Content-Encoding: gzipContent-Encoding: deflate)。
  • Content-Disposition:指示如何处理响应体(如 Content-Disposition: attachment; filename="file.txt")。
    重定向相关
  • Location:指定重定向的目标 URL(如 Location: http://example.com/new-page)。
    服务器信息
  • Server:服务器软件的信息(如 Server: Apache/2.4.41 (Unix))。
    跨源资源共享(CORS)
  • Access-Control-Allow-Origin:指定允许哪些源访问资源(如 Access-Control-Allow-Origin: *)。
  • Access-Control-Allow-Methods:指定允许的 HTTP 方法(如 Access-Control-Allow-Methods: GET, POST)。
  • Access-Control-Allow-Headers:指定允许的请求头字段(如 Access-Control-Allow-Headers: Content-Type)。

响应体(Response Body)

  • 内容:服务器返回的实际数据,如 HTML、JSON、XML 或其他格式的内容。响应体的具体内容取决于 Content-Type 头部字段。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容