一、浏览器开发调试
在我们学习和设计HTTP的相关内容时,最常用的工具就是浏览器,一般浏览器都自带开发者模式,在涉及到HTTP原理的学习中,我们主要是查看HTTP的请求头和响应头。
以chrome浏览器的使用为例子,在页面点击右键-检查打开调试面板,在顶部导航找到Network,然后刷新页面,你可以看到该页面的加载内容:
- General并不属于HTTP报文的内容,该项信息只是一个简洁提炼出来展示。
- Response
Headers响应头,在这里你可以查看服务器的环境信息:server服务器使用的是AmazonS3,也可以查看关于该报文数据主体的详细信息,例如从content-type得知该报文数据类型为image/jpeg,还有报文数据的过期时间,最后更新时间等。 - Request
Headers请求头,本机向服务器请求数据的报文信息,例如cookie,浏览器每次请求都会带上cookie,所以在cookie中保存session id可以实现回话保持。又如user-agent为本机请求的用户代理,在这里即浏览器。
二、curl HTTP客户端调试
除了可以使用浏览器作为开发调试工具,另外还有更好用的curl,curl是一个超级强大的HTTP客户端工具,你可以在linux环境下安装,另外,如果你在本地已下载git可以使用git bash命令行工具使用curl。
Curl常用命令如下:
- 获取html文档内容:curl http://www.example.com
- 显示http头:curl –I http://www.example.com
- 显示http头和html内容:
curl –v http://www.example.com
curl –i http://www.example.com
- 保存html文档内容:curl http://www.example.com –o
index.html - 获取重定向内容:curl –L http://example.com
- 自定义User-Agent:curl – A “user-agent” http://www.example.com
- 自定义header:curl –H “key=value”
- 保存cookie:curl –c “cookie-file-name”
- 发送POST请求,-X后面跟HTTP方法:
- curl –d “key01=value01&key02=value02” –X POST http://www.example.com