HTTP:请求与响应入门 · Lesson 2 of 6

第 2 课:请求的信封:方法、路径与请求头

本课目标:

  • 在请求中识别 HTTP 方法。
  • 在请求中识别路径或 URL。
  • 说出至少一个常见请求头,并解释它的作用。

上一篇 << 1 | 下一篇 3 >>

一封信需要动作、地址,还有信封上的备注

浏览器发请求时,并不是大喊一声「把页面给我」。它会写一个正式的信封。这个信封有三个部分:它想做什么、想在哪里做,以及写给服务器的几条附加备注。

在 HTTP 里,这三个部分分别叫方法路径请求头1

讲解

方法:动作

HTTP 方法是一个单词,说明浏览器想做什么。最常见的两个是:

  • GET:「请把这个资源发给我。」2
  • POST:「这里有一些数据,请收下。」3

大多数页面加载用的是 GET。

路径:地址

路径是 URL 中域名之后的部分。对 https://example.com/about 来说,路径是 /about。请求本身只写路径,因为域名已经放在一个请求头里发出去了14

请求头:附加备注

请求头是跟在请求行之后的元数据行。每个请求头都有名字和值,用冒号隔开。例如:

http
Host: example.comUser-Agent: Mozilla/5.0Accept: text/html

Host 头告诉服务器这个请求属于哪个域名。User-Agent 头告诉服务器是哪个浏览器在发问。Accept 头告诉服务器浏览器能处理哪类内容1

完整示例(跟着做)

下面是对 https://example.com/about 的一个完整 GET 请求:

http
GET /about HTTP/1.1Host: example.comUser-Agent: LearnBrowser/1.0Accept: text/html
  • GET 是方法。
  • /about 是路径。
  • Host: example.comUser-Agent: LearnBrowser/1.0Accept: text/html 是请求头。

你来试试(填空示例)

给这个请求的每个部分做标注:

http
POST /contact HTTP/1.1Host: example.comContent-Type: application/x-www-form-urlencoded
  • 方法:POST
  • 路径:/contact
  • 请求头:Host: example.comContent-Type: application/x-www-form-urlencoded

小结 + 下一步

请求是一个有三部分的信封:方法(做什么)、路径(哪个资源)、请求头(附加备注)。下一课,你将看服务器的回信。

Footnotes

  1. MDN: HTTP messages — https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Messages 2 3

  2. MDN: GET request method — https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Methods/GET

  3. MDN: POST request method — https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Methods/POST

  4. MDN: Overview of HTTP — https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Overview

Exercises

01

打开浏览器开发者工具的 Network 面板(下一课会更详细地介绍,这个标签页通常叫 Network,右键菜单里的入口叫「检查」)。重新加载任意页面。点击一条请求,找到它的 Headers 区域。你能找到方法和路径吗?

第 1 级(热身)
Done criteria · checked locally
02

一条请求的方法是 GET,路径是 /search?q=cats。请求的哪个部分在索取搜索结果,哪个部分只是携带关键词?

第 2 级(进阶)
Done criteria · checked locally