初识HTTP
HTTP全称“超文本传输协议”
超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符来标识。
通俗地讲,http就是互联网中网页间联系的纽带,是我们人为规定的协议,就像我们人类说的语言一样,不同国家的人(制订协议)规定自己国家的语言。在互联网中
请求
接下来学习中,将使用linux提供的cURL来模拟用户发送请求到服务器。
cURL是一个利用URL语法在命令行下工作的文件传输工具。它支持文件上传和下载。
curl -v -s https://www.baidu.com
通过curl的 -verbose可以输出这个请求的详细信息,再用-slient屏蔽一些多余的信息。
> GET / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.55.1
> Accept: */*
>
上面5行就是一个完整的请求header。
第一行:请求方式 请求路径 协议版本
第二行:域名
第三行:请求源
第四行:表示接受所有的返回
第五行:表示键值对分界线
我们还可以通过curl的各种参数构造不一样的请求。
请求的格式
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 要上传的数据
- 在标准的请求头中,至少要有三部分组成(1,2,3)最多不能超过四部分
- 动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
- 路径(默认为\)包括查询串不包括锚点
通过chrome获取请求
以B站为例,右键点击审查,通过network栏就可以看到所有的请求
单击任何一项,就可以查看完整标准的http请求了。
通过chrome获取响应
同理,只需要点开Response Headers就可以查看响应
响应的格式与请求的类似
1 协议/版本号 状态码 状态解释
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下载的内容
网友评论