HTTP入门

HTTP 请求包括哪些部分,如何用Chrome开发者工具查看 HTTP 请求内容

当浏览器向服务器发出请求时,是在向服务器发送数据块,以访问百度这个网站举例。
使用Chrome浏览器打开百度,右键“检查”。

点击Network

选中Perserve log保留请求日志 并 情况当前日志,然后刷新页面。

点击第一个www.baidu.com,打开`request headers,点击view source`就可以查看请求的内容。

数据块主要包括这几个部分
第一部分:请求方式,请求的目录,HTTP协议和版本号
第二部分:各种key
第三部分:换行

第四部分:请求的正文部分(POST),在 FormData 或 Payload 里面可以看到

HTTP 响应包括哪些部分,如何用Chrome开发者工具查看 HTTP 响应内容

查看响应的方式和请求类似,只是在response headers中进行查看

第一行:协议与版本号,状态码,状态解释
第二部分:各种key
第三部分:换行
第四部分是正文在response中查看。

如何使用 curl

curl是一个利用URL规则在命令行下工作的文件传输工具,可以简单的理解成一个网页下载器也有上传的功能。

不加参数直接使用

1
curl http://www.baidu.com

默认会发送 GET 请求来获取链接内容到标准输出

显示HTTP的header

1
curl -I http://www.baidu.com

或者

1
curl -i http://www.baidu.com

I(大写i)代表不显示正文信息,i代表显示正文信息。

将链接保存到文件

可以使用 > 符号将输出重定向到本地文件中。

1
curl http://www.baidu.com > index.html

也可以通过 curl 自带的 -o/-O 选项将内容保存到文件中。
-o(小写的 o):结果会被保存到命令行中提供的文件名

1
curl -o index.html http://www.baidu.com

同时也可以用-o/O下载多个页面

使用 -H 自定义 header

当我们需要传递特定的 header 的时候,可以仿照以下命令来写:

1
curl -H "Referer: www.example.com" -H "User-Agent: Custom-User-Agent" http://www.baidu.com

可以看到,当我们使用 -H 来自定义 User-Agent 时,需要使用 “User-Agent: xxx” 的格式。

其他的一些参数

-v/--verbose` 小写的v参数,用于打印更多信息,包括发送的请求信息

-s/--slient 减少输出的信息

更多的可以查询explainshell