• HTTP报文整理


    首先,客户端和服务器直接是有交互的 —— 请求访问 与 响应 。报文,就是携带了客户端与服务器(还有代理)之间交流信息的数据块。

    简要拎出两点:

    • HTTP报文只有:请求报文(request message) 和 响应报文(response message),两种。
    • 报文由三部分组成:起始行(start line)、包含属性的首部块(header)、可选的,包含数据的主体(body)

    请求报文

    起始行(请求行)

    <method> <request-URL> <version>

    GET /test/helloworld.txt HTTP/1.1
    首部块 <headers>

    Date:Sun, 01 Oct 2018 17:15:16 GMT

    Accept: text/*

    Host:www.jaykoo.com

    User-agent:Mozilla/4.75 [en] (Win8; U)

    主体 <entity-body> CRLF(空行,此请求报文中并未携带主体)

    请求头

    request-URL:请求资源的路径。

    version:

      格式:HTTP/<major>.<minor>(major:主要版本号,minor:次要版本号)

    method:客户端对服务器执行的动作,常见有

    方法 描述 是否有主体
    GET 从服务器获取文档
    HEAD 只从服务器获取文档首部
    POST 想服务器发送需要处理的数据
    PUT 将请求的主体部分存储在服务器上
    TRACE 对可能经过代理服务器传送到服务器上去的报文进行追踪
    OPTIONS 决定可以在服务器上执行哪些方法
    DELETE 从服务器上删除一份文档

    首部块(headers)

    一般由:通用首部 / 请求首部 / 实体首部 / 扩展首部 组成。(后两者可选)

    • 通用首部:请求报文和响应报文都能携带的基本信息。比如创建时间(Date)
    • 请求首部:只在请求报文中有意义的首部。上面的Accpt:Text/*(Accept表示了告诉服务器能够发送哪些媒体类型,让服务器对发送的内容做更好的决定。这里为text)
    • 实体首部:报文携带的实体相关信息。
    • 扩展首部:非标准的首部,由程序员创建。

    实体

    发送的实体数据信息

    响应报文

    起始行(响应行)

    <version> <status> <reason-phrase>

    HTTP/1.0 200 OK
    首部块 <headers>

    Date:Sun, 01 Oct 2018 17:15:16 GMT

    Server:Apache/1.3.11 BSafe-SSL/1.38 (Linux)

    Content-length:403

    Content-Type:text/html

    主体 <entity-body>

    <HTML>

    <HEAD><TITLE>JayKoo</TITLE></HEAD>

    <BODY>

    <H1>JayKoo</H1>

    <P>This is a test!</P>

    </BODY>

    </HTML>

    响应头

    version:同上

    status:状态码,常见网页状态码有404(服务器无法找到请求的URL响应的资源)。上面的200表示成功

    reason-phrase:原因短语,为状态码提供了文本解释。

    首部块(headers)

    一般由:通用首部 / 响应首部 / 实体首部 / 扩展首部 组成。(后两者可选)

    除了响应首部,其余都与请求报文的headers类似。

      响应首部:为客户端提供了一些额外的信息,比如服务器信息。

    实体(见表格)

  • 相关阅读:
    Android开发之记账本开发第四天
    动手动脑——继承与多态
    跟踪某个类所创建对象的个数
    动手动脑——类与对象
    石家庄地铁模拟
    动手动脑——方法
    查询单词出现次数
    动手动脑——JAVA语法基础
    原码反码补码
    ATM机模拟系统
  • 原文地址:https://www.cnblogs.com/jaykoo/p/9996069.html
Copyright © 2020-2023  润新知