HTTP

250 阅读2分钟

Server:服务器
Client:客户端
每台电脑都有端口,每个端口只负责一样。端口0-2048为指定功能 80端口为服务HTTP协议

服务器与浏览器交互

  1. 浏览器负责发起请求
  2. 服务器在80端口接受请求 (别的端口也可以 但一般不这么做)
  3. 服务器负责返回内容(响应)
  4. 服务器负责下载响应内容
    HTTP的作用就是知道浏览器和服务器如何进行沟通

请求示例

命令

在命令行中使用命令 curl 使用curl创造一个请求:

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

请求内容为:

* 后为注释;

> 后为请求

GET / HTTP/1.1 获取根目录(不是硬盘的根目录)HTTP协议版本为1.1

User-Agent: curl/7.64.0 用什么软件发起的响应

Accept: */* 接受返回的任何内容

POST请求

命令:

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

向目标网页上传数据

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

向百度上传1234567890

请求内容:

Content-Length: 10要上传'0-9'共10个字节

Content-Type: application/x-www-form-urlencoded 提交数据的方式(格式)

此注释表示已经将10个字节上传

GET和POST区别

GET:获取内容,获取网页信息时是GET。打开网页时获取页面内容时就是GET。
POST:上传内容,上传信息时使用POST。输入用户名密码登录时就是POST。

在浏览器上查看请求及相应

以谷歌浏览器为例:

  1. 打开Network (点击F12打开控制台,然后选择Network)

  2. 在地址栏输入网址(输全带http://)

此为查看GET请求


查看POST请求 步骤基本等同POST 登录百度时查看:


响应

curl -X GET -s -v -- "https://www.baidu.com"的响应为:

curl -X POST -s -v -- "https://www.baidu.com"的相应为:

响应的格式

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

查看响应

步骤基本等同于查看响应 点击 Response Headers的view parsed