HTTP初探:请求与响应

HTTP是什么

协议,就是双方为了交流而设置的规则。而超文本传输协议(HTTP)就是客户端和服务器端之间相互通信而设置的规则。只要客户端与服务器都使用HTTP协议,双方就能相互理解各自所发送信息的含义。
通过使用网页浏览器(如IE、Chrome)等工具,客户端发起一个HTTP请求到服务器上的指定端口(默认端口为80)。服务器则在该端口监听客户端的请求,一旦收到请求,服务器会响应客户端并返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。

HTTP请求

HTTP请求包含以下几个信息:

  1. 动词 路径 协议/版本(例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件)
  2. Key1: value1(例如Accept-Language: en)
  3. 空行
  4. 要上传的数据

HTTP响应

HTTP响应包含以下几个信息:

  1. 协议/版本号 状态码 状态解释(例如HTTP/1.1 200 OK,表示请求已成功,请求所希望的响应头或数据体将随此响应返回)
  2. Key1: value1
  3. 空行
    4 要下载的内容

使用Chrome开发者工具查看HTTP请求&发送内容

  1. 打开Chrome,在空白位置右击鼠标,选择检查,进入开发者模式
    进入开发者模式
  2. 选择Network标签,输入并打开查询网址,选择第一项
    进入请求
  3. 选择Request HeadersResponse Headers即可查看请求或响应信息的1、2部分(记得选择View Source),选择Response可查看第四部分
    查看信息
  4. 查询结果
    查询结果

使用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地址

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容