请求与响应
Server + Client + HTTP(服务器 + 客户端 + 传输协议)
1.浏览器负责发起请求;
2.服务器在80端口接收请求;
3.服务器负责返回内容(响应);
4.浏览器负责下载响应内容。
请求
请求的格式:
1 动词 路径 协议/版本
2 key1 : value1
2 key2 : value2
2 key3 : value3
2 content-Type : application/x-www-form-urlencoded
2 Host : www.baidu.com
2 user-Agent : curl/7.54.0
3
4 要上传的数据
例:
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
ps:application/x-www-form-urlencoded
applica表示这是一个应用数据
/ 表示后面是我的子类 x-是没有写入规范的格式 www=万维网 form=表单
urlencoded表示用urlencoded的形式
1.请求最多包含四部分,最少包含三部分(也就是说第四部分可以为空)
2.第三部分永远是个回车!!为的是将第二部分和第四部分分割开来
3.动词有GET POST PUT PATCH DELETE HEAD OPTIONS等
4.这里的路径包括【查询参数】,但不包括【锚点】
5.如果你没有写路径,那么默认为 /
6.第二部分中的Content-Type标注了第四部分的格式
GET : 获取 POST : 新增/上传 PUT PATCH : 更新
PUT是整体更新 PATCH是局部更新
DELETE : 删除
在Chrome中用开发者工具查看HTTP的请求内容
在页面中右键打开检查,找到Network,地址栏输入网址,在Network中点击第一个文件,查看request,点击view source(一定记得点击),然后就可以看到请求的前三部分了,如果有请求的第四部分,可以在FormData或者Payload里面可以看到。
ps:在网页登陆账号的post请求查看Response Headers可以在Form Data中查看到账号密码~
响应
响应的格式:
1 协议/版本号 状态码 状态解释
2 Key1 : value1
2 Key2 : value2
2 Content-Length : number
2 Contene-Type : text / 第四部分的格式
3
4 要下载的内容
例:
HTTP/1.1 302 Found
Connection: Keep-Alive
Content-Length: 17931
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:19:47 GMT
Etag: "54d9749e-460b"
Server: bfe/1.0.8.18
1.GET请求和POST请求对应的响应可以一样,也可以不一样
2.响应的第四部分可以很长很长很长~~
3.状态码要背,是服务器和浏览器说的话
4.状态解释没有什么用
5.第二部分中的Content-Type标注了第四部分的格式,同时Content-Type遵循MIME规范
在Chrome中用开发者工具查看HTTP的响应内容
在页面中右键打开检查,找到Network,地址栏输入网址,在Network中点击第一个文件,查看Response Headers,点击view source(一定记得点击),然后就可以看到请求的前两部分了,查看Response或者Preview,会看到响应的第四部分。
如何使用curl命令
首先顾名思义curl是个命令,所以得用命令行来使用它
curl命令释义:
curl -s -v -h"xxx"-- "请求的网址"
-s :Slient 不要显示进度
-v :要显示请求和响应
-H:添加一个响应头(不添加也可以)
-- "请求的网址":把你请求的网址写在两个横线以及一个空格的后面。