HTTP的请求与响应
Server(服务器)+Client(客户端)+HTTP(超文本传输协议)

HTTP的作用就是指导浏览器与服务器进行沟通
简单介绍一下HTTP的请求与响应
1.浏览器负责发起请求
2.服务器在80端口接收请求
3.服务器返回内容(响应)
4.浏览器负责下载响应内容
(一)请求格式:
1 动词 路径 协议/版本
2 key1: value1
2 key2: value2
2 key3: value3
. . .
. . .
3
4 要上传的数据


1.请求最多包含四个部分(第四部分显示上传的内容),最少包含三个部分。
2.第三部分为空行(回车)
3.第一部分的动词有:GET(获取内容)、POST(上传内容)、PUT(整体更新)、PATCH(局部更新)、DELETE(删除)、HEAD、OPTION
4.第一部分的路径包括[查询参数],但不包括锚点;如果没有写路径,那么路径就默认为"/"
5.如请求示例图2中的第二部分Content-Type: application/x-www-form-urlencoded,其中Content-Type是标注了第四部分上传数据的格式

用Chrome开发者工具查看 HTTP 请求内容:
1.打开Chrome按F12,打开Network

2.在浏览器地址栏输入一个网址并回车
3.在Network里点击查看request


4.点击[view source]就可以看到请求三部分

5.如果请求有第四部分,那在From Data或Payload里面可以看到
(二)响应格式:
1 协议/版本 状态码 状态解释
2 key1: value1
2 key2: value2
2 key3: value3
. . .
. . .
3
4 要下载的内容

1.GET请求和POST请求对应得响应可以一样,也可以不一样
2.响应的第四部分可以很长
3.状态解释没有什么用
4.如响应示例图1中的第二部分Content-Type: text/html,其中Content-Type是标注了第四部分的格式
状态码重点(要背)
· 1xx 不常用
· 2xx 成功
· 3xx 表示滚吧!
· 4xx 表示你(输入方)错误
· 5xx 表示服务器错误
这里是具体的HTTP状态码解释
用Chrome开发者工具查看 HTTP 响应内容:
1.打开Chrome按F12,打开Network
2.在浏览器地址栏输入一个网址并回车
3.在Network里点击查看response

4.点击[view source]就可以看到响应前两部分

5.查看 Response 或者 Preview,你会看到响应的第 4 部分
命令curl
curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。
基本用法:curl https://www.baidu.com
执行后 www.baidu.com 的html就会显示在屏幕上
简单说一下GET和POST的方法:
GET方法:curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"
-H "Frank: xxx" :该部分为自定义的内容,可写可不写;
POST方法:curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"
-d "1234567890" 为向服务器上传的数据。