美文网首页
http请求与响应入门

http请求与响应入门

作者: 格林姆大师 | 来源:发表于2018-04-03 13:33 被阅读0次

    一、HTTP 请求:

    HTTP 请求的格式:

    第1部分: 动词 路径 协议/版本

    第2部分: Key1: value1

    第2部分: Key2: value2

    第2部分: Key3: value3

    .................................

    第2部分: Key-n: value-n

    第2部分: Content-Type: application/x-www-form-urlencoded

    第2部分: Host: www.baidu.com

    第2部分: User-Agent: curl/7.54.0

    第3部分:(永远是一个回车)

    第4部分: 要上传的数据(无数据上传时则为空,即没有第4部分)

        //动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等,PUT整体更新上传的数据,PATCH部分更新上传的数据;这里的路径包括「查询参数」,但不包括「锚点」,如果你没有写路径,那么路径默认为 /

    二、HTTP 响应:

    HTTP 响应的格式:

    第1部分: 协议/版本号 状态码 状态解释 (状态码对应的解释自行百度)

    第2部分: Key1: value1

    第2部分: Key2: value2

    第2部分: Key3: value3

    .................................

    第2部分: Key-n: value-n

    第2部分: Content-Type: text/html (Content-Type 标注了第 4 部分的格式)

    第2部分:Content-Length: 4646 (第 4 部分的长度)

    第3部分:(永远是一个回车)

    第4部分: 要下载的内容

    实例:

    $ curl -s -v -H -- "https://www.baidu.com/s?wd=ff5#5"

    请求的内容为:

    > GET /s?wd=ff5 HTTP/1.1                 //第1部分            

    > Host: www.baidu.com                       //第2部分   

    > User-Agent: curl/7.55.0                      //第2部分   

    > Accept: */*                                          //第2部分   

    >                                                            //第3部分   

    { [5 bytes data]                                      //第4部分   

    响应的内容为:

        //以下为第1部分---- 

    < HTTP/1.1 200 OK

        //以下为第2部分---- 

    < Accept-Ranges: bytes

    < Cache-Control: no-cache

    < Connection: Keep-Alive

    < Content-Length: 227

    < Content-Type: text/html

    < Date: Tue, 03 Apr 2018 04:02:50 GMT

    < Last-Modified: Fri, 30 Mar 2018 07:37:00 GMT

    < P3p: CP=" OTI DSP COR IVA OUR IND COM "

    < Pragma: no-cache

    < Server: BWS/1.1

    < Set-Cookie: BD_NOT_HTTPS=1; path=/; Max-Age=300

    < Set-Cookie: BIDUPSID=8DB9741B1FF95D6E44CCC4027687056E; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

    < Set-Cookie: PSTM=1522728170; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

    < Strict-Transport-Security: max-age=0

    < X-Ua-Compatible: IE=Edge,chrome=1

        //以下为第3部分---- 

    <

        //以下为第4部分---- 

    { [227 bytes data]

    三、用Chrome开发者工具查看 HTTP 请求、响应内容

    如上图:打开 Network---刷新网页---选中第一个响应---查看 Request Headers,点击「view source」,Request Headers就是请求的前两部分

    查看 Response Headers,点击「view source」,Response Headers就是响应的前两部分---查看 Response 或者 Preview,你会看到响应的第 4 部分

    四、如何使用 curl 命令

    get方式:

    curl -s -v -H "Frank: xxx" -H "xxx:qqq" -- "https://www.baidu.com"

    以上面实例说明curl的使用,

    -s为不显示进度条,

    -v:测试不加-v的情况下,只获取到网页内容,但是不显示请求与响应的内容;

    -H:可以有多个,-H中的内容会成为请求中第2部分的内容;

    -- URL:URL不加引号也能成功,‘--’ 不加也能;

    post方式:

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

    -X POST:有-d "1234567890"的情况下不加-X POST仍然会已post方式请求。

    自行测试:

    curl -X POST -s -v -d "12346" -H "xx:yy" -H "yy:xx" -- "https://www.baidu.com/path?username=ff&password=123"

    相关文章

      网友评论

          本文标题:http请求与响应入门

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