|
! I' ]: v; R3 z' E3 [# j5 h+ u
HTTP 请求包括哪些部分,如何用Chrome开发者工具查看 HTTP 请求内容?HTTP 响应包括哪些部分,如何用Chrome开发者工具查看 HTTP 响应内容?如何使用 curl 命令?一、笔记1、李爵士发明了URI(统一资源标识符)、HTTP(超文本传输协议)、HTML(超文本标记语言);
. x+ p( s/ ]& c6 |1 c5 e 2、URL(统一资源定位符)、URN(统一资源名称);3、URL组成:协议+域名+路径+查询参数+锚点+端口,http://baidu.com是二级域名,http://www.baidu.com是三级域名; " b6 v; s0 Z( L0 y. }
4、DNS(域名解析系统):输入域名,输出IP;5、server服务器、client客户端、http协议,一个端口只做1件事,80端口用来服务http;6、浏览器负责发起请求,服务器在 80 端口接收请求,服务器负责返回内容(响应),浏览器负责下载响应内容,HTTP 的作用就是指导浏览器和服务器如何进行沟通;
+ b3 f& M! k+ ]! Z 7、状态码解释:https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81 0 ^' o: ]+ `5 m( {0 r+ t. F7 P4 D4 f' i
二、http请求包含部分1、格式1动词 路径 协议/版本- m2 C7 t0 }$ L2 d) d* V! `3 |
2 Key1: value1( C& R4 |3 T- I
2 Key2: value2
$ A. C' y3 r r1 V# U" Q/ F 2 Key3: value3! v- M8 r9 y( s- I) S
2 Content-Type: application/x-www-form-urlencoded
) P8 l0 G8 s3 q% [) e 2 Host: www.baidu.com$ V) u1 d- A# c: {9 r
2 User-Agent: curl/7.54.0
; l2 \9 \' ~5 F+ r1 D5 D 3# ~+ O9 G" j' R8 D" F
4 要上传的数据
. v3 z; l% n+ ^- ?! h# f" P 解释:请求最多包含4部分,最少包含3部分;第3部分永远是一个回车;动词可以是GET(获取) POST(上传)PUT(整体更新)PATCH(局部更新)DELETE(删除)HEAD OPTIONS等;路径包含查询参数但不包括锚点;如果没有写路径,默认为/;Content-Type标注了第四部分的格式; 1 q+ m$ H8 L) E# h" D! J. H
2、GET请求例子1 GET / HTTP/1.1
3 M" a ]9 ^5 }9 T 2 Host: www.baidu.com; U5 g e7 P5 S3 q8 `' J
2 User-Agent: curl/7.54.0" H* c/ G9 {# Z y
2 Accept: */*; f6 I2 j& u# b& {6 b
2 Frank: xxx* M5 I7 Q+ F# c$ q: w8 ~
3
+ j+ N7 H0 |1 O 3、POST请求例子1 POST /path HTTP/1.1
! B& Z& i+ c" f4 j, Y) ] 2 Host: baidu.com. R! a# A. p# G/ p# K
2 Accept:application/json
* C/ Y. |, O P" j0 j& E4 y 2 Conetent-Type:application/x-www-form-urlencoded
! \/ @ V1 f5 G$ x 2 Conetent-Length:1000
* y) Q! o t+ ^3 h m' O8 o 3
* }! I9 P! ^2 N 4 username=ff&password=123
* ~- S, c1 q& V. x3 L6 ^" n 三、用Chrome查看请求1、打开 Network2、地址栏输入网址3、在 Network 点击查看 request,点击「view source」点击「view source」点击「view source」 ) e) G* X7 p3 x1 C6 m g
4、可以看到请求的前三部分了5、如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到四、http响应包含部分1、格式1 协议/版本号 状态码 状态解释! E7 B! k3 Q, ~
2 Key1: value1% K' f" L/ T* m& m) h2 f" Y
2 Key2: value2
% L0 j" z* C) r8 f: b$ C o 2 Content-Length: 17931) t7 a& ?- k2 @. a \" Z" }1 L
2 Content-Type: text/html& a- k6 z/ G+ a2 q$ r9 C9 G
3$ W2 K4 J: H: q. ^' N
4 要下载的内容
9 @ J2 ]" Q5 C. C5 v 2、例子HTTP/1.1 302 Found
% M K5 g" P9 S/ e' I. ~: e+ |- b Connection: Keep-Alive( D1 r; M6 B% S7 U0 L; M0 t
Content-Length: 17931
- X9 A6 n* N: G- c Content-Type: text/html8 A. }! N, Z1 N4 }+ S* D7 m. I
Date: Tue, 10 Oct 2017 09:19:47 GMT: E6 d" M9 ^/ O) D
Etag: "54d9749e-460b"
: G$ \& o. F- s Server: bfe/1.0.8.18
7 i X3 |7 q) s4 f 五、用Chrome查看响应1、打开 Network2、输入网址3、选中第一个响应4、查看 Response Headers,点击「view source」5、你会看到响应的前两部分6、查看 Response 或者 Preview,你会看到响应的第 4 部分 3 A& M6 k' w8 d0 c- a8 c) U
六、如何使用curl命令1、GET请求访问百度的命令:curl -s -v -- "https://www.baidu.com"2、如果要获取网页时使用额外的标题,可以输入命令:url -s -v -H "Lambert: xxx" -- "https://www.baidu.com"
+ z( I$ [! F# P& z% P 3、POST请求使用额外标题访问QQ的命令:curl -X POST -s -v -H "Lambert: xxx" -- "https://www.qq.com"4、POST请求访问并指定数据发送HTTP服务器命令:
( W0 y/ |2 g' r curl -X POST -d "111111111" -s -v -H "Lambert: xxx" -- "https://www.qq.com"5、下载一个页面的内容curl 网址>本地文件夹路径 4 h7 f8 _5 g! k6 n- ]9 |. m/ ~
# P8 h* ~3 T' |4 i; {1 U
, p6 J: F W" n N
9 F6 @* _$ V- F/ J! Q
2 X, N+ i' c p" O2 e |