总结一下 关于HTTP请求和响应的相关知识。
开始正文之前,首先复习一下HTTP的相关基础知识。
HTTP是一种协议,是浏览器(客户端)与服务器(服务端)之间进行通讯的规则。
HTTP是无状态的协议,也就是说,当客户端向服务器端发出请求,得到服务器返回的响应后,浏览器和服务器之间建立的连接就关闭了,两者之间没有持久的连接。
本文分为如下几个部分:
- HTTP 请求包括哪些部分,如何用Chrome开发者工具查看 HTTP 请求内容。
- HTTP 响应包括哪些部分,如何用Chrome开发者工具查看 HTTP 响应内容。
- 如何使用 curl 命令。
- Hosts文件的作用
- HTTP常用状态码速记
1.HTTP请求
请求的格式
HTTP请求至少包含3个部分,具体可以分为如下
第1部分 请求方法 路径 协议/版本
第2部分 请求头
第3部分 (回车,用于区分请求头和请求正文)
第4部分 请求正文(可以没有)
利用Chrome开发者工具查看内容
比如最常用的GET请求方法,下面结合Chrome开发者工具具体展示一下一个请求包含的内容。
- 打开Chrome浏览器,进入首页,按F12进入调试页面。
- 选中Network,在地址栏写入一个完整的URL地址,这里以http://www.baidu.com 为例。输入之后,按回车,等待几秒,可以看到如下界面。
- 把调试栏第二行,点击两个蓝色的图标使其变灰,方便我们看所有的请求。然后把下方滚动条拖到顶部,可以看到第一个请求,就是请求 www.baidu.com,点击这一行,如图所示。
4. 展开Request Headers ,并点击view source(一定要点击),如图
直接复制出来,太长的部分做了一些省略,这里不做具体的释义。
第1部分 GET / HTTP/1.1
第2部分 Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Chrome/73.0.3683.103
Accept:text/html,application/xhtml+xml
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: 太长省略
通过上面几步,就可以查看HTTP 请求内容。
2.HTTP响应
响应的格式
HTTP响应也至少包含3个部分,具体可以分为如下
第1部分 协议/版本 状态码
第2部分 响应头
第3部分 (回车,用于区分响应头和响应正文)
第4部分 响应正文(可以没有)
利用Chrome开发者工具查看内容
前3步同请求查看时的步骤,第4步对应改为展开Response Headers ,并点击view source(一定要点击),如图
响应正文点开上面Response可以看见完整的,不截图了,这里返回了一些HTML文件。
复制出刚才的信息,适当做一些省略,可以注意到第二部分的响应头里有Content-Type,用于指定返回内容的类型。
HTTP/1.1 200 OK
Bdpagetype: 2
Bdqid: 0xf3432d51003e268b
Cache-Control: private
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Server: BWS/1.1
3.如何使用 curl 命令
curl是一种命令行工具。作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面.(http://www.ruanyifeng.com/blog/2011/09/curl.html)
注意:在使用本命令之前,请确保自己的本机上(windows系统)已经安装过GitBash并成功配置。
有很多教程已经详细说明了curl命令的使用方法,这里只介绍几种最常用的。
- 查看网页源码
curl +网页地址
curl www.sina.com
结果如下,稍微有些乱码,但还是可以看出是返回了网页源码
2. 用-i参数同时接收到响应的内容
curl -i www.baidu.com
结果如图
3. 用-v参数显示整个通讯过程,包括端口连接和http request头信息。
curl -v www.baidu.com
如图
4. 1个综合例子
curl -s -v -- baidu.com
-s
无声或安静模式。 不显示进度表或错误消息。
--
分隔符
还有很多参数和使用方法,读者可以参见
[Linux curl命令详解][https://www.cnblogs.com/duhuo/p/5695256.html]
4. Hosts文件
Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开。
将一些常用网址的域名和对应的ip地址建立关联“数据库”。
当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
Hosts文件配置的映射是静态的,如果网络上的计算机更改了请及时更新IP地址,否则将不能访问。
简单总结hosts文件的作用:
- 加快域名解析
把经常访问的网站的域名和ip的映射关系写入hosts文件中,计算机就能很快解析出ip,不用再请求DNS服务器。 - 方便局域网用户
在很多单位的局域网中,会有服务器提供给用户使用。可以分别给这些服务器取容易记住的名字,然后在Hosts中建立IP映射,这样以后访问时,只要输入这个服务器的名字就行了。 - 屏蔽网站(域名重定向)
有很多网站不经过用户同意就将各种各样的插件安装到你的计算机中,对于这些网站可以利用Hosts把该网站的域名映射到错误的IP或本地计算机的IP,这样就不用访问了达到了屏蔽网站的目的。 - 顺利连接系统
对于Lotus的服务器和一些数据库服务器,在访问时如果直接输入IP地址那是不能访问的,只能输入服务器名才能访问。那么我们配置好Hosts文件,这样输入服务器名就能顺利连接了。 - 虚拟域名
很多时候,网站建设者需要把”软环境“搭建好,再进行上传调试。但类似于邮件服务,则需要使用域名来辅助调试,这时就可以将本地 IP 地址与一个”虚拟域名“做地址指向,就可以达到要求的效果,且无需花费。如:
127.0.0.1 网站域名
之后在浏览器地址栏中输入对应的网站域名即可。
5. HTTP常用状态码速记
本文为番茄小火锅的原创文章,著作权归本人和饥人谷所有,转载务必注明来源。