http请求与响应入门

2018-04-03  本文已影响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"

上一篇下一篇

猜你喜欢

热点阅读