|
9 m' N# O( l0 C" `% M3 A
HTTP 请求包括哪些部分,如何用Chrome开发者工具查看 HTTP 请求内容?HTTP 响应包括哪些部分,如何用Chrome开发者工具查看 HTTP 响应内容?如何使用 curl 命令?一、笔记1、李爵士发明了URI(统一资源标识符)、HTTP(超文本传输协议)、HTML(超文本标记语言); * ^* f |# B1 K- h" ^0 }
2、URL(统一资源定位符)、URN(统一资源名称);3、URL组成:协议+域名+路径+查询参数+锚点+端口,http://baidu.com是二级域名,http://www.baidu.com是三级域名; , N4 z4 o: n( c& K+ ^- `+ @5 y
4、DNS(域名解析系统):输入域名,输出IP;5、server服务器、client客户端、http协议,一个端口只做1件事,80端口用来服务http;6、浏览器负责发起请求,服务器在 80 端口接收请求,服务器负责返回内容(响应),浏览器负责下载响应内容,HTTP 的作用就是指导浏览器和服务器如何进行沟通; 7 l3 N7 {6 M o. c$ s( y7 j1 v
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
* ~. f( K+ H) w1 }1 |2 p4 Z 二、http请求包含部分1、格式1动词 路径 协议/版本
7 A5 H( j* V0 e: ^ 2 Key1: value1
7 y6 Y. P- _7 [" \ 2 Key2: value2
1 N) N! O, } V- d- a+ o0 d) u 2 Key3: value3
* c: K9 D! U7 ?: X0 |& K 2 Content-Type: application/x-www-form-urlencoded
, a5 e9 n" h, c" {3 l 2 Host: www.baidu.com7 l j# u' P4 f: n& b; O
2 User-Agent: curl/7.54.0
# S: N8 M* Q1 e+ ~6 @ 3
9 {- D! n+ {$ x& k" V- r 4 要上传的数据
1 p4 {8 e6 ?# K3 S4 C 解释:请求最多包含4部分,最少包含3部分;第3部分永远是一个回车;动词可以是GET(获取) POST(上传)PUT(整体更新)PATCH(局部更新)DELETE(删除)HEAD OPTIONS等;路径包含查询参数但不包括锚点;如果没有写路径,默认为/;Content-Type标注了第四部分的格式; ; {6 K# L$ z! ^' m" g
2、GET请求例子1 GET / HTTP/1.1
3 y. t4 r& v, `# N, S. a) t 2 Host: www.baidu.com
" G4 i5 r* \# {: E, W F- K9 E, _ 2 User-Agent: curl/7.54.0
/ d! c) m& H5 O# H 2 Accept: */*
- s- o/ Q& f- `7 a 2 Frank: xxx
# N1 d G9 u `1 ?/ X: [ 3 # X- B/ ?; B+ `! W% M% E8 v4 {
3、POST请求例子1 POST /path HTTP/1.1. B1 b3 e2 l4 ?. @. A% O$ v
2 Host: baidu.com. d& _' {9 N% E% d0 O+ _/ V* \
2 Accept:application/json
. a: Z7 q( s% G7 ~( ^4 P9 r# @ 2 Conetent-Type:application/x-www-form-urlencoded
( G6 @6 t+ X2 a( ~& }; B0 ` 2 Conetent-Length:1000
8 F7 K* j9 i/ U+ F 3
7 I, u Q' }8 W" `% q 4 username=ff&password=123 ) o' [ x8 z! M' e- b- q
三、用Chrome查看请求1、打开 Network2、地址栏输入网址3、在 Network 点击查看 request,点击「view source」点击「view source」点击「view source」 * g5 L! ]8 S% \/ A# j
4、可以看到请求的前三部分了5、如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到四、http响应包含部分1、格式1 协议/版本号 状态码 状态解释
/ A# t2 j2 U9 O" t1 h; b 2 Key1: value1! g' h$ Y; H. _
2 Key2: value2
5 C, w3 C3 }% Y- L. o9 {7 Z( M 2 Content-Length: 17931" `7 m& J# ]' ~$ X( l- B2 R$ M1 ^
2 Content-Type: text/html# n7 s' g& j) ^, D9 a
3/ G+ f8 k" E B! \; C3 e2 v
4 要下载的内容
/ \$ n+ o# s$ a3 |4 b/ C# |& ~ 2、例子HTTP/1.1 302 Found' k5 ~: C' l: K- H. R* p
Connection: Keep-Alive5 S, k/ g% ?8 H" x
Content-Length: 17931& J. C0 m# f$ S
Content-Type: text/html3 ~' Q' B7 N' U1 O
Date: Tue, 10 Oct 2017 09:19:47 GMT; w: p0 c+ |6 ^9 j0 G
Etag: "54d9749e-460b"
& A% y* a& R9 P4 t) |( U Server: bfe/1.0.8.18
9 v" f) {0 R+ D, ` I" P. s 五、用Chrome查看响应1、打开 Network2、输入网址3、选中第一个响应4、查看 Response Headers,点击「view source」5、你会看到响应的前两部分6、查看 Response 或者 Preview,你会看到响应的第 4 部分
: d- S7 c. h* c: R1 [ 六、如何使用curl命令1、GET请求访问百度的命令:curl -s -v -- "https://www.baidu.com"2、如果要获取网页时使用额外的标题,可以输入命令:url -s -v -H "Lambert: xxx" -- "https://www.baidu.com"
- Z3 M3 z* @+ `. ^ 3、POST请求使用额外标题访问QQ的命令:curl -X POST -s -v -H "Lambert: xxx" -- "https://www.qq.com"4、POST请求访问并指定数据发送HTTP服务器命令:
8 g( U+ c8 K; K7 b- M K/ X" ? l curl -X POST -d "111111111" -s -v -H "Lambert: xxx" -- "https://www.qq.com"5、下载一个页面的内容curl 网址>本地文件夹路径 2 G0 O6 F! a9 T7 \
4 |7 z' }4 _+ H4 j
+ i& T/ i& p6 ~2 M* B; [3 ]( ?. Q( g+ D# U
0 H {; ^: O. T; m |