HTTP请求与响应

HTTP是什么

HTTP(HyperText Transfer Protocol),超文本传输协议,指导浏览器和服务器如何进行沟通。

HTTP请求

- 请求的格式

1 动词 路径 协议/版本
2 Key1: value1
2 Key2: value2
2 Key3: value3
2 Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
3
4 要上传的数据

  • 请求最多包含四部分,最少包含三部分。(第四部分可以为空)
  • 第三部分永远都是一个回车
  • 动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
  • 这里的路径包括「查询参数」,但不包括「锚点」
  • 如果没写路径,那么路径默认为 /
  • 第 2 部分中的 Content-Type 标注了第 4 部分的格式

实例:

GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Yuki: xxx
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx
Content-Length: 10
Content-Type: application/x-www-form-urlencoded

1234567890
- 如何查看请求

1.打开 Network
2.地址栏输入网址
3.在 Network 点击,查看 request,点击「view source」
4.点击「view source」
5.如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到

HTTP响应

- 响应的格式

1 协议/版本号 状态码 状态解释
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下载的内容

第 2 部分中的 Content-Type 标注了第 4 部分的格式
第 2 部分中的 Content-Type 遵循 MIME 规范

实例:

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: Tue, 10 Oct 2017 09:14:05 GMT
Etag: "5886041d-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

<!DOCTYPE html>
<!--STATUS OK--><html> <head> 后面太长,省略了……
- 如何查看响应

打开 Network
输入网址
选中第一个响应
查看 Response Headers,点击「view source」
你会看到响应的前两部分
查看 Response 或者 Preview,你会看到响应的第 4 部分

curl 命令

curl命令详解
curl -X POST -d "userName=tom&passwd=123456" -s -v -H "Yuki: xxx" -- "https://www.baidu.com"

-X 使用指定的请求方式。(默认请求方式为get)
-d 上传数据

注意:
在使用 -d 的情况下,如果省略 -X,则默认为 POST 方式:
curl -d “userName=tom&passwd=123456”
强制使用 GET 方式 :
发送数据时,不仅可以使用 POST 方式,也可以使用 GET 方式,
例如:curl -d “somedata” -X GET

-s,-silence
静音模式。不显示进度表或错误消息。

-v 可以显示一次 http 通信的整个过程,包括端口连接和 http request 头信息。

使用 -H 自定义 header
当我们需要传递特定的 header 时,可以仿照以下命令来写:
curl -H “Referer: www.example.com” -H “User-Agent: Custom-User-Agent” -- "http://www.baidu.com"
可以看到,当我们使用 -H 来自定义 User-Agent 时,需要使用 “User-Agent: xxx” 的格式。

参考:Linux 命令行:cURL 的十种常见用法



本文著作权归本人和饥人谷所有,转载务必注明来源。

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