美文网首页
关于HTTP协议的消息结构

关于HTTP协议的消息结构

作者: 猫清扬 | 来源:发表于2019-11-17 00:01 被阅读0次

    客户端请求消息

    主要由三部分组成,请求行,请求头,请求体。其中请求头和请求体中间有一个空行隔开。

    • 请求行一般描述"请求方法"、"url"和"协议版本",用空格隔开。
    • 请求头一般描述客户端信息和一些和服务器端交互的定义,例如浏览器版本、消息内容格式和cookie等信息,他以key:value结构定义
    • 请求体一般为服务器发送的数据,例如提交的表单信息和上传文件信息

    大致为这样:

    请求行:[请求方法] [URL] [协议版本]\r\n 
    请求头:[key]:[value]\r\n
    请求头:[key]:[value]\r\n
    \r\n
    请求体:[内容]
    

    对应:

    POST /login HTTP/1.1      
    Host: www.jd.com
    Content-Type: application/x-www-form-urlencoded
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
    Cookie: rememberMe=true; 
    
    username=xxx&password=xxx
    

    服务器端响应消息

    主要由三部分组成,状态行,消息报头,响应正文。其中消息报头和响应正文中间有一个空行隔开。

    • 状态行一般描述"协议版本"和"响应状态",用空格隔开。
    • 消息报头一般描述服务器信息、消息体格式和向客户端发送的一些指令,例如服务器类型、跳转压缩命令和cookie信息,他们同样以key:value结构定义
    • 响应正文一般为服务器向客户返回的数据,例如html消息,或者json数据

    大致为这样:

    状态行:[协议版本] [响应状态] [状态描述] \r\n 
    消息报头:[key]:[value]\r\n
    消息报头:[key]:[value]\r\n
    \r\n
    响应正文:[内容]
    

    对应:

    HTTP/1.1 200 OK     
    Connection:keep-alive
    Content-Type:text/html; charset=utf-8
    Date:Sat, 04 Aug 2018 16:16:38 GMT
    ETag:"5b65cd80-163e4"
    Last-Modified:Sat, 04 Aug 2018 16:00:00 GMT
    Server:nginx/1.4.7
    
    <html>
        <head>
            <meta ...>...</meta>
        </head>
        <body>
            <div>...</div>
        </body>
    </html>
    

    相关文章

      网友评论

          本文标题:关于HTTP协议的消息结构

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