• HTTP协议的报文


    1、HTTP 的报文类型

    HTTP 有两类报文:
    (1) 请求报文:从客户端发送给服务器端的报文
    (2) 响应报文:服务器到客户的回答

    两种报文的结构如下图:

    HTTP 请求报文(响应报文)是由三部分组成:
    1)请求行(响应报文中称之为状态行): 用于区分是请求报文还是响应报文。
    2)请求头(响应头): 用来说明浏览器、服务器或报文主体的-些信息。在每一个首部行中都有首部字段名和它的值
    3)请求主体(响应主体)

    2、http请求报文(请求行、请求头、请求主体)

    2.1、请求行

    请求报文的 “请求行” 只有三个内容,即:方法、请求URL、以及HTTP的版本。

    比如:上例中链接到“ 清华大学院系设置” 页面的请求行:GET   http://www.tsinghua.edu.cη/chn/yxsz/index.htm   HTTP/1.1

    此时,该请求报文的请求行就是:GET /chn/yxsz/index. htm HTTP /1. 1 {请求行使用了相对URL}

    2.2、请求头

    浏览器通过请求头告诉服务器关于浏览器的一些信息,格式: 请求头名称:请求头值

    参数介绍:

    Accept-Encoding: gzip, deflate             浏览器支持的压缩编码是 gzip 和 deflate。              

    Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7       浏览器支持的字符编码分别是 GB2312、utf-8 和任意字符

    Accept-Language: zh-cn,zh;q=0.5           浏览器支持的语言分别是中文和简体中文            

    Accept: text/html,application/xhtml+xml,application/xml,application/json,*/*    表明浏览器所支持接收的数据类型,表明所支持的 MIME 有:html、xhtml+xml、xml、json、任何类型

    Host: www.tsinghua.edu.cn               此行是请求头的开始,表明发出请求的客户端的域名            

    Connection: close                              告诉服务器发送完请求的文档后就可释放连接

    User-Agent: Mozilla/5.0        表明浏览器的一些版本信息

    Referer:https://www.baidu.com/         浏览器目前所处页面的URL

    Content-type:application/json          告诉服务器我们发送的请求信息的格式

    2.3、请求主体

    请求主体放的是请求的参数,比如:username=aaa

    GET 请求没有请求主体,它的请求参数放在请求 URL 中:www.baidu.com?username=aaa

    3、http 响应报文(状态行、响应头、响应主体)

    3.1、状态行

    响应报文的第一行就是状态行。状态行包括三项内容,即:HTTP的版本、状态码、以及解释状态码的简单短语。

    状态码(Status-Code)都是三位数字的, 分为5大类共33种:

    lxx表示通知信息的, 如请求收到了或正在进行处理。
    2xx表示成功, 如接受或知道了。
    3xx表示重定向, 如要完成请求还必须采取进一步的行动。
    4xx表示客户的差错, 如请求中有错误的语法或不能完成。

    5xx表示服务器的差错, 如服务器失效无法完成请求。

    常见的状态码:

    200 请求成功

    302 重定向
    304 页面缓存

    403 没有权限访问
    404 页面不存在

    500 后端程序报错

    具体的状态码查看:http://www.runoob.com/http/http-status-codes.html

    4、HTTP中请求头和响应头的各个字段及含义

    参考:https://www.cnblogs.com/widget90/p/7650890.html

    5、Content-Type 字段各个值的含义

    参考:https://www.cnblogs.com/cyanlong/p/5726793.html

    6、HTTP协议各个版本的比较(http0.9、1.0、1.1、2.0)

    参考:https://www.cnblogs.com/andashu/p/6441271.html#top

    https://blog.csdn.net/qq_22238021/article/details/81197157

  • 相关阅读:
    智课雅思词汇---二十、前缀syn-sym-syl是什么意思
    运行php的时候出现计算机中丢失 MSVCR110.dll怎么解决
    解决PHP5.6版本“No input file specified”的问题
    PhpSpreadsheet如何读取excel文件
    [thinkphp使用phpspreadsheet时出现]Cannot redeclare xxxxxx() (previously declared in C:WWWxxx.xxx:xxx)
    thinkphp中如何使用phpspreadsheet插件
    thinkphp中composer方式安装的插件如何使用
    phpexcel如何读取excel的数据和如何导出数据到excel
    Composer如何安装(安装注意事项)
    enq: TX
  • 原文地址:https://www.cnblogs.com/wenxuehai/p/12674659.html
Copyright © 2020-2023  润新知