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           设置用户代理发送给服务器
-b/--cookie     cookie字符串或文件读取位置
-c/--cookie-jar             操作结束后把cookie写入到这个文件中
-C/--continue-at          断点续转
-D/--dump-header            把header信息写入到该文件中
-e/--referer                      来源网址
-f/--fail                         连接失败时不显示http错误
-o/--output                       把输出写到该文件中
-O/--remote-name                  把输出写到该文件中,保留远程文件的文件名
-r/--range                 检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent                       静音模式。不输出任何东西
-T/--upload-file            上传文件
-u/--user        设置服务器的用户和密码
-w/--write-out [format]           什么输出完成后
-x/--proxy           在给定的端口上使用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地址

你可能感兴趣的:(HTTP初探:请求与响应)