美文网首页饥人谷技术博客
HTTP请求与响应及curl命令的使用

HTTP请求与响应及curl命令的使用

作者: Uohkowg | 来源:发表于2018-12-02 19:45 被阅读8次

    超文本传输协议英语HyperText Transfer Protocol,缩写HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。HTTP是万维网的数据通信的基础。

    这一篇文章会简单介绍HTTP的请求与响应,并在其中穿插curl命令的使用。

    一、HTTP请求

    一个简单的栗子

    首先我们来看看一个很简单的请求:

    GET / HTTP/1.1
    Host: www.baidu.com
    User-Agent: curl/7.54.0
    Accept: */*
    

    这就是我们平时打开百度时向服务器提交的请求。用curl命令表示为:

    curl  -s -v -- "https://www.baidu.com"
    

    或者发送一个POST请求:

    curl -X POST -d "hello" -s -v -H  -- "https://www.baidu.com"
    

    其中 -d "hello"表示向服务器提交的数据。explainshell

    请求内容格式

    动词 路径 协议/版本
    Key1: value1
    Key2: value2
    Key3: value3
    Content-Type: application/x-www-form-urlencoded
    Host: www.baidu.com
    User-Agent: curl/7.54.0
    
    要上传的数据
    
    • 请求最多包含四部分,最少包含三部分。(第四部分可以为空)
    • 第一部分格式通常为动词 路径 协议/版本
    • 第二部分中的 Content-Type 标注了第 4 部分的格式
    • 第三部分永远都是一个回车(\n)
    • 在第一部分中,动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等,路径包括「查询参数」,但不包括「锚点」,如果你没有写路径,那么路径默认为 /。
    • GETPOST的主要区别是前者是向指定的资源发出“显示”请求,后者是向指定资源提交数据,请求服务器进行处理。

    用Chrome开发者工具查看 HTTP 请求内容

    1. 打开开发者工具中的Network,并清空记录。
    2. 在地址栏输入地址。
    3. 展开Request Headers,并点击 view source 就可以看到请求内容。


      请求内容

    二、HTTP响应

    一个简单的栗子

    HTTP/1.1 200 OK
    Accept-Ranges: bytes
    Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
    Connection: Keep-Alive
    Content-Length: 2443
    Content-Type: text/html
    Date: Sun, 02 Dec 2018 11:59:44 GMT
    Etag: "58860402-98b"
    Last-Modified: Mon, 23 Jan 2017 13:24:18 GMT
    Pragma: no-cache
    Server: bfe/1.0.8.18
    Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
    
    { [1048 bytes data]     //这里是返回的内容
    

    以上是www.baidu.com服务器响应的内容。

    响应内容的格式

    协议/版本号 状态码 状态解释
    Key1: value1
    Key2: value2
    Content-Length: 17931
    Content-Type: text/html
    
    要下载的内容
    
    • 状态码简单解析wiki解释
      • 1xx 请求已被服务器接收,继续处理(不常用)
      • 2xx 请求已成功
      • 3xx 表示重定向
      • 4xx 表示客户端请求错误
      • 5xx 表示服务器错误
    • 状态解释没什么用
    • 第二部分中的 Content-Type 标注了第 4 部分的格式并遵循 MIME 规范。
    • 第三部分回车。
    • 第四部分就是要下载内容。

    用Chrome开发者工具查看 HTTP 响应内容

    1. 打开开发者工具中的Network,并清空记录。
    2. 在地址栏输入地址。
    3. 展开Response Headers,并点击 view source 就可以看到响应的前两部分。
    4. 点击Tab栏上的 Response 或者 Preview就可以看到响应的第四部分内容。


      响应内容前两部分
    响应的第四部分内容

    相关文章

      网友评论

        本文标题:HTTP请求与响应及curl命令的使用

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