美文网首页饥人谷技术博客
HTTP请求与响应及curl命令的使用

HTTP请求与响应及curl命令的使用

作者: Uohkowg | 来源:发表于2018-12-02 19:45 被阅读8次

超文本传输协议英语HyperText Transfer Protocol,缩写HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。HTTP是万维网的数据通信的基础。

这一篇文章会简单介绍HTTP的请求与响应,并在其中穿插curl命令的使用。

一、HTTP请求

一个简单的栗子

首先我们来看看一个很简单的请求:

GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*

这就是我们平时打开百度时向服务器提交的请求。用curl命令表示为:

curl  -s -v -- "https://www.baidu.com"

或者发送一个POST请求:

curl -X POST -d "hello" -s -v -H  -- "https://www.baidu.com"

其中 -d "hello"表示向服务器提交的数据。explainshell

请求内容格式

动词 路径 协议/版本
Key1: value1
Key2: value2
Key3: value3
Content-Type: application/x-www-form-urlencoded
Host: www.baidu.com
User-Agent: curl/7.54.0

要上传的数据
  • 请求最多包含四部分,最少包含三部分。(第四部分可以为空)
  • 第一部分格式通常为动词 路径 协议/版本
  • 第二部分中的 Content-Type 标注了第 4 部分的格式
  • 第三部分永远都是一个回车(\n)
  • 在第一部分中,动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等,路径包括「查询参数」,但不包括「锚点」,如果你没有写路径,那么路径默认为 /。
  • GETPOST的主要区别是前者是向指定的资源发出“显示”请求,后者是向指定资源提交数据,请求服务器进行处理。

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

  1. 打开开发者工具中的Network,并清空记录。
  2. 在地址栏输入地址。
  3. 展开Request Headers,并点击 view source 就可以看到请求内容。


    请求内容

二、HTTP响应

一个简单的栗子

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 2443
Content-Type: text/html
Date: Sun, 02 Dec 2018 11:59:44 GMT
Etag: "58860402-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:18 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

{ [1048 bytes data]     //这里是返回的内容

以上是www.baidu.com服务器响应的内容。

响应内容的格式

协议/版本号 状态码 状态解释
Key1: value1
Key2: value2
Content-Length: 17931
Content-Type: text/html

要下载的内容
  • 状态码简单解析wiki解释
    • 1xx 请求已被服务器接收,继续处理(不常用)
    • 2xx 请求已成功
    • 3xx 表示重定向
    • 4xx 表示客户端请求错误
    • 5xx 表示服务器错误
  • 状态解释没什么用
  • 第二部分中的 Content-Type 标注了第 4 部分的格式并遵循 MIME 规范。
  • 第三部分回车。
  • 第四部分就是要下载内容。

用Chrome开发者工具查看 HTTP 响应内容

  1. 打开开发者工具中的Network,并清空记录。
  2. 在地址栏输入地址。
  3. 展开Response Headers,并点击 view source 就可以看到响应的前两部分。
  4. 点击Tab栏上的 Response 或者 Preview就可以看到响应的第四部分内容。


    响应内容前两部分
响应的第四部分内容

相关文章

网友评论

    本文标题:HTTP请求与响应及curl命令的使用

    本文链接:https://www.haomeiwen.com/subject/jjlscqtx.html