HTTP是什么
协议,就是双方为了交流而设置的规则。而超文本传输协议(HTTP)就是客户端和服务器端之间相互通信而设置的规则。只要客户端与服务器都使用HTTP协议,双方就能相互理解各自所发送信息的含义。
通过使用网页浏览器(如IE、Chrome)等工具,客户端发起一个HTTP请求到服务器上的指定端口(默认端口为80)。服务器则在该端口监听客户端的请求,一旦收到请求,服务器会响应客户端并返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。
HTTP请求
HTTP请求包含以下几个信息:
- 动词 路径 协议/版本(例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件)
- Key1: value1(例如Accept-Language: en)
- 空行
- 要上传的数据
HTTP响应
HTTP响应包含以下几个信息:
- 协议/版本号 状态码 状态解释(例如HTTP/1.1 200 OK,表示请求已成功,请求所希望的响应头或数据体将随此响应返回)
- Key1: value1
- 空行
4 要下载的内容
使用Chrome开发者工具查看HTTP请求&发送内容
- 打开Chrome,在空白位置右击鼠标,选择检查,进入开发者模式 进入开发者模式
- 选择Network标签,输入并打开查询网址,选择第一项 进入请求
- 选择Request Headers或Response Headers即可查看请求或响应信息的1、2部分(记得选择View Source),选择Response可查看第四部分 查看信息
- 查询结果 查询结果
使用curl命令查看HTTP请求&发送内容
curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。
- 语法 :
$ curl [option] [url]
- 常见参数:
-A/--user-agent <string> 设置用户代理发送给服务器
-b/--cookie <name=string/file> cookie字符串或文件读取位置
-c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
-C/--continue-at <offset> 断点续转
-D/--dump-header <file> 把header信息写入到该文件中
-e/--referer 来源网址
-f/--fail 连接失败时不显示http错误
-o/--output 把输出写到该文件中
-O/--remote-name 把输出写到该文件中,保留远程文件的文件名
-r/--range <range> 检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent 静音模式。不输出任何东西
-T/--upload-file <file> 上传文件
-u/--user <user[:password]> 设置服务器的用户和密码
-w/--write-out [format] 什么输出完成后
-x/--proxy <host[:port]> 在给定的端口上使用HTTP代理
-#/--progress-bar 进度条显示当前的传送状态
- 示例
$ curl -s -v -H "Hello" -- "https://www.baidu.com"
用 curl 创造一个请求,并得到响应
请求与响应
$ curl -o baidu.html www.baidu.com
用curl抓去百度首页保存到当前目录下的baidu.html中
$ curl ip.gs
用curl查询本机IP地址
网友评论