美文网首页
HTTP报文实践

HTTP报文实践

作者: sunpy | 来源:发表于2019-01-19 13:23 被阅读64次

    什么是HTTP协议

    HTTP是一种不保存的状态,即无状态协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。

    HTTP报文格式

    HTTP协议交互的信息被称为HTTP报文。HTTP报文由报文首部、空行(CR+LF)、报文主体。HTTP报文分为请求报文、响应报文。


    HTTP报文.png

    HTTP请求报文结构

    请求报文:请求行、请求头、空行、请求体


    1. 请求行
    POST /mch/login HTTP/1.1\r\n
    

    说明:
    POST(请求方法)、/mch/login(URI)、HTTP/1.1(HTTP版本)。
    2. 请求头

    Host: 192.168.9.172:8087\r\n
    Connection: keep-alive\r\n
    Content-Length: 59\r\n
    Accept: application/json, text/javascript, */*; q=0.01\r\n
    Origin: http://192.168.9.172:8087\r\n
    X-Requested-With: XMLHttpRequest\r\n
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36\r\n
    Content-Type: application/json\r\n
    Referer: http://192.168.9.172:8087/mch/\r\n
    Accept-Encoding: gzip, deflate\r\n
    Accept-Language: zh-CN,zh;q=0.9\r\n
    

    说明:
    Host: 192.168.9.172:8087(表示服务器的域名以及服务器所监听的端口号);
    Connection: keep-alive(维持持久连接);
    Content-Length: 59(实体部分的大小);
    Accept: application/json, text/javascript, /; q=0.01(可接受的响应内容类型);
    Origin: http://192.168.9.172:8087(发起一个针对跨域资源共享的请求);
    X-Requested-With: XMLHttpRequest(代表ajax异步请求);
    User-Agent: Mozilla/5.0(浏览器的身份标识字符串);
    Content-Type: application/json(实体主体内对象的媒体类型);
    Referer: http://192.168.9.172:8087/mch/(告知服务器请求的原始资源的uri);
    Accept-Encoding: gzip, deflate(告知服务器用户代理支持的内容编码及内容编码的优先级顺序);
    Accept-Language: zh-CN,zh;q=0.9(告知服务器用户代理能够处理的自然语言);
    3. 空行

    \r\n
    

    4. 请求体

    [Full request URI: http://192.168.9.172:8087/mch/login]
    [HTTP request 1/2]
    [Response in frame: 400]
    [Next request in frame: 402]
    File Data: 59 bytes
    
    请求体.png

    HTTP响应报文结构

    响应报文:状态行、响应头、响应体


    1. 状态行
    HTTP/1.1 200 OK\r\n
    

    说明:
    HTTP/1.1(HTTP版本)、200(状态码)、OK(短语)
    2. 响应头

    Server: Apache-Coyote/1.1\r\n
    Set-Cookie: SHAREJSESSIONID=8a0e17c5-379f-4fc1-85e0-81eb6056f480; Path=/; HttpOnly\r\n
    Set-Cookie: rememberMe=deleteMe; Path=/mch; Max-Age=0; Expires=Thu, 17-Jan-2019 08:18:45 GMT\r\n
    Content-Type: application/json;charset=UTF-8\r\n
    Content-Length: 16\r\n
    Date: Fri, 18 Jan 2019 08:18:45 GMT\r\n
    

    说明:
    Server: Apache-Coyote/1.1(HTTP服务器应用程序信息);
    Set-Cookie: SHAREJSESSIONID=8a0e17c5-379f-4fc1-85e0-81eb6056f480; Path=/; HttpOnly(设置了sessionId,path属性服务器上的文件目录作为cookie的适用对象,HttpOnly属性使cookie不能为javascript脚本访问);
    Content-Type(实体主体内对象的媒体类型);
    Content-Length: 16(实体部分的大小);
    Date: Fri, 18 Jan 2019 08:18:45 GMT(创建HTTP报文的日期和时间);
    3. 空行

    \r\n
    

    4. 响应体

    HTTP response 1/2
    [Time since request: 0.052455000 seconds]
    [Request in frame: 397]
    [Next request in frame: 402]
    [Next response in frame: 448]
    File Data: 16 bytes
    

    相关文章

      网友评论

          本文标题:HTTP报文实践

          本文链接:https://www.haomeiwen.com/subject/vzkndqtx.html