|
0 b+ C+ T! w+ \ g7 |
HTTP 请求包括哪些部分,如何用Chrome开发者工具查看 HTTP 请求内容?HTTP 响应包括哪些部分,如何用Chrome开发者工具查看 HTTP 响应内容?如何使用 curl 命令?一、笔记1、李爵士发明了URI(统一资源标识符)、HTTP(超文本传输协议)、HTML(超文本标记语言); 8 H: F$ w/ P! V3 S
2、URL(统一资源定位符)、URN(统一资源名称);3、URL组成:协议+域名+路径+查询参数+锚点+端口,http://baidu.com是二级域名,http://www.baidu.com是三级域名;
" C+ Q( I! A2 w2 W8 _5 B$ X 4、DNS(域名解析系统):输入域名,输出IP;5、server服务器、client客户端、http协议,一个端口只做1件事,80端口用来服务http;6、浏览器负责发起请求,服务器在 80 端口接收请求,服务器负责返回内容(响应),浏览器负责下载响应内容,HTTP 的作用就是指导浏览器和服务器如何进行沟通;
! H& g5 k; y' J2 q 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 $ y9 z: c, B/ K- I7 P7 z5 K
二、http请求包含部分1、格式1动词 路径 协议/版本* M1 {: u$ L4 G1 H! r0 @5 X
2 Key1: value1
' Q. Q; c$ x3 M1 W( x4 f: D0 j 2 Key2: value2% \0 O# }% W6 g: S/ O
2 Key3: value3, ]4 F& l* A9 r! w
2 Content-Type: application/x-www-form-urlencoded
; _2 X# ~. g3 y/ a2 G) v" k5 T' z" f 2 Host: www.baidu.com, l5 `* {% C/ _/ W
2 User-Agent: curl/7.54.0: g" E4 I( v- w6 z7 X% B5 W( Z
3
8 G) u7 o8 A" F4 p3 a 4 要上传的数据
1 W. | w6 i- Q! l3 n 解释:请求最多包含4部分,最少包含3部分;第3部分永远是一个回车;动词可以是GET(获取) POST(上传)PUT(整体更新)PATCH(局部更新)DELETE(删除)HEAD OPTIONS等;路径包含查询参数但不包括锚点;如果没有写路径,默认为/;Content-Type标注了第四部分的格式;
6 F* q% Q: T/ Y ^ 2、GET请求例子1 GET / HTTP/1.1( @- P! A0 }" _! T
2 Host: www.baidu.com
- \! l) L: d, p& H8 {! b 2 User-Agent: curl/7.54.08 A" w ^6 ]; N1 y b
2 Accept: */*6 _- X' A8 ^9 W& F2 J. _* l! U4 P
2 Frank: xxx+ i. w# f R- v5 j" A
3 1 }/ ^) ?5 [9 V' g' z
3、POST请求例子1 POST /path HTTP/1.1
$ ^1 x1 q# u2 t2 B+ M* @ 2 Host: baidu.com* L/ p% ]# D( U6 @6 H5 H
2 Accept:application/json+ I- \" L. o3 G6 R( j
2 Conetent-Type:application/x-www-form-urlencoded6 L) h4 E M) P- c2 @& A/ E9 B
2 Conetent-Length:1000
) O7 z; z# Z0 N( g: A& ^" z R 39 w5 p) o3 z! w; w$ c$ T6 }4 A) |0 X
4 username=ff&password=123 + b+ `0 D. b# M' o
三、用Chrome查看请求1、打开 Network2、地址栏输入网址3、在 Network 点击查看 request,点击「view source」点击「view source」点击「view source」 : r1 k" s d2 b J; V2 Z7 h" D+ y
4、可以看到请求的前三部分了5、如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到四、http响应包含部分1、格式1 协议/版本号 状态码 状态解释7 T! Y3 V5 C6 B! w+ f; {- V7 I
2 Key1: value1
* Z3 F! l4 r2 j% G8 L. ~ 2 Key2: value2
0 G( B! I# `( R9 B+ L( T 2 Content-Length: 17931
; P4 [% e0 B. t" o5 M$ |4 U 2 Content-Type: text/html5 R3 S* u2 g; V8 Z4 |; K
3# S% V# U- s) r# E9 z8 s* E, I+ r
4 要下载的内容
" @% n; ^& C2 b) m2 K0 ` 2、例子HTTP/1.1 302 Found: ]/ s( b% z0 ]; h0 {: Y+ E, |
Connection: Keep-Alive
- |5 a7 T2 d! H7 X Content-Length: 17931# \# }! T$ [& g0 n" t$ ?
Content-Type: text/html
3 B, p G, b3 Q8 n+ S( n: H Date: Tue, 10 Oct 2017 09:19:47 GMT
9 H5 x( k1 d7 V m% @ Etag: "54d9749e-460b"
5 _2 ~6 e" A% u* R' X( y Server: bfe/1.0.8.18
3 K+ z" ?' S8 n 五、用Chrome查看响应1、打开 Network2、输入网址3、选中第一个响应4、查看 Response Headers,点击「view source」5、你会看到响应的前两部分6、查看 Response 或者 Preview,你会看到响应的第 4 部分
4 T K5 A$ v+ D& A: P# O 六、如何使用curl命令1、GET请求访问百度的命令:curl -s -v -- "https://www.baidu.com"2、如果要获取网页时使用额外的标题,可以输入命令:url -s -v -H "Lambert: xxx" -- "https://www.baidu.com"
' n+ }+ _7 E. Q 3、POST请求使用额外标题访问QQ的命令:curl -X POST -s -v -H "Lambert: xxx" -- "https://www.qq.com"4、POST请求访问并指定数据发送HTTP服务器命令: : s9 ~( E/ r3 n" H- x2 s
curl -X POST -d "111111111" -s -v -H "Lambert: xxx" -- "https://www.qq.com"5、下载一个页面的内容curl 网址>本地文件夹路径 6 |8 Q# V! ?4 x
% K8 y* ~7 c/ U$ O% u! o0 E
; R M$ }' G ?, H! A
6 }4 i+ H _3 @2 @/ O: b( G7 G( Q8 w( j$ {; J! n3 k% v
|