请求&响应
UPL 统一标识标识符
一般现在分为URL 和 URN
URL:统一资源定位符,一般成为网址,唯一确定的位置
URN:统一资源名称,唯一确定的名称
URL 的各部分含义
DNS:输入域名 输出IP
21 FTP服务
443 HTTPS服务
1080 代理服务器端口
3306 MYSQL服务器
80 HTTP服务
请求实例
curl -s -v -H "rrrr: xxx" -- "https://www.baidu.com"
解释-s
silent
不要显示进度条-v
verbose
显示请求和响应,不加-v
只有响应-H "rrrr: xxx"
响应头
命令行输入命令后回车,看到:星号开头的是注释部分,大于号开始的是请求部分,小于号开头发是响应部分
GET请求
> GET / HTTP/1.1 //GET请求,第一个是 / 是根目录,协议是HTTP,版本号是1.1 > Host: www.baidu.com > User-Agent: curl/7.52.1 //用的是什么软件发起的响应,curl软件,版本号是7.52.1 > Accept: */* //我接收你返回给我的任何内容 > rrrr: xxx //响应头 >
POST 请求curl -X POST -s -v -H "rrrr: xxx" -- "https://www.baidu.com"
> POST / HTTP/1.1 //发起的是POST请求,其他和GET请求都一样 > Host: www.baidu.com > User-Agent: curl/7.52.1 > Accept: */* > rrrr: xxx >
POST 请求 带数据curl -X POST -d "123456789" -s -v -H "rrrr: xxx" -- "https://www.baidu.com"
POST / HTTP/1.1 > Host: www.baidu.com > User-Agent: curl/7.52.1 > Accept: */* > rrrr: xxx > Content-Length: 9 //我要上传的字节长度 > Content-Type: application/x-www-form-urlencoded //上传的内容类型 > * upload completely sent off: 9 out of 9 bytes //完整的上传了9个字节
请求格式
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:cur/7.54.0 3. 4. 要上传的数据l
请求最多包含四部分,至少包含三部分(也就是说第四部分可以为空)
第三部分永远都是一个回车(n)用来区分第2部分和第4部分
动词有GET
POST
PUT
PATCH
DELETE
HEAD
OPTIONS
等
这里的路径包括【查询参数】,但不包括【锚点】
如果你没有写路径,那么路径默认为 /
第2部分中的Content-Type
标注了第4部分的格式
application/x-www-form-urlencoded
application:应用数据
x-:没有被写入规范(实验属性)
www:万维网
form:表单
urlencoded:用urlencoded的形式压缩(中文转义)
GET
获取 POST
新增上传PUT
更新 整体更新PATCH
更新 局部更新DELETE
删除
响应实例
< HTTP/1.1 302 Found < Connection: Keep-Alive < Content-Length: 17931 //内容长度 < Content-Type: text/html //内容类型 < Date: Sat, 26 May 2018 11:17:01 GMT < Etag: "54d97487-460b" < Server: bfe/1.0.8.18 < <html> <head> <meta http-equiv="content-type" ......
响应格式
1. 协议/版本号 状态码 状态解释 2. Key1:value1 2. Key2:value2 2. Content-Length:17931 2. Content-Type:text/html 3. 4. 要下载的内容
- 1xx 不常用
- 2xx 表示成功 //POST 返回204 创建成功,GET 返回200 普通的成功
- 3xx 表示重定向 //301 永久的搬走,302 临时被封禁,304 这一次内容和上一次内容一样
- 4xx 访问者出错
- 5xx 服务器出错
第2部分中的Content-Type 标注了第4部分的格式
第2部分中的Content-Type 遵循 MIME 规范