美文网首页饥人谷技术博客
HTTP请求与响应的相关知识

HTTP请求与响应的相关知识

作者: 孙炎_ | 来源:发表于2018-12-25 21:02 被阅读4次

    首先了解几个概念:

    1. URL(Uniform Resource Identifier): 统一资源定位符,用于标识某一互联网资源名称的字符串。

    以百度网址为例:https://www.baidu.com/s?wd=nihao&rsv_spt=1。这就是一个URL。而今天要学的就是其中HTTP协议,其中HTTPS是HTTP协议的加密版。

    1. HTTP(HyperText Transfer Protocol):超文本传输协议,设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。HTTP是万维网的数据通信的基础。

    HTTP一般包括请求与响应两部分。

    HTTP请求

    下面介绍使用Chrome浏览器对百度网址发送一个请求,如何查看请求都包含什么部分。
    1.首先打开百度(https://www.baidu.com),然后鼠标右键,点击检查
    2.点击Network,按下F5刷新,点击第一列请求,查看 request,点击「view source」
    为了更方便的查看请求内容都包含什么,以bash命令为例进行介绍。在git bash中输入如下命令:
    curl -s -v -H "Frank: xxx" -- "https://www.baidu.com",HTTP请求一般使用get或者post请求。默认使用get请求,得到如下图所示:

    get请求
    再用post请求:curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"
    得到如下图所示: post请求

    即请求的一般格式为:

    1 动词 路径 协议/版本
    2 Key1: value1
    2 Key2: value2
    2 Key3: value3
    2 Content-Type: application/x-www-form-urlencoded
    2 Host: www.baidu.com
    2 User-Agent: curl/7.54.0
    3
    4 要上传的数据

    请求一般包括四部分,第一部分为:动词 路径 协议/版本;第二部分为:Key:value的形式;第三部分为换行即\n,第四部分为请求的数据。需要注意的是:
    1.第三部分永远都是一个回车(\n)
    2.动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
    3.这里的路径包括「查询参数」,但不包括「锚点」
    4.如果你没有写路径,那么路径默认为 /
    5.第 2 部分中的 Content-Type 标注了第 4 部分的格式

    HTTP响应

    同样的使用HTTP请求中的方式,查看HTTP响应。在Chrome浏览器中,查看 Response Headers,点击「view source」,即可查看响应的前两部分,点击 Response 或者 Preview,你会看到响应的第四部分。
    同样的,为了方便查看,在gitbash中总结响应的格式:


    HTTP响应

    1 协议/版本号 状态码 状态解释
    2 Key1: value1
    2 Key2: value2
    2 Content-Length: 17931
    2 Content-Type: text/html
    3
    4 要下载的内容

    与请求一样,响应也分为四部分,其中需要作出解释的是状态码,根据数字的不同,含义也不一样。具体可参考维基百科:HTTP状态码
    在上述引用中:
    1.第 2 部分中的 Content-Type 标注了第 4 部分的格式
    2.第 2 部分中的 Content-Type 遵循 MIME 规范

    参考:饥人谷课程 维基百科

    相关文章

      网友评论

        本文标题:HTTP请求与响应的相关知识

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