目录搜索
GuidesAccess control CORSAuthenticationBrowser detection using the user agentCachingCaching FAQCompressionConditional requestsConnection management in HTTP 1.xContent negotiationContent negotiation: List of default Accept valuesCookiesCSPMessagesOverviewProtocol upgrade mechanismProxy servers and tunnelingProxy servers and tunneling: Proxy Auto-Configuration (PAC) filePublic Key PinningRange requestsRedirectionsResources and specificationsResources and URIsResponse codesServer-Side Access ControlSessionGuides: BasicsBasics of HTTPChoosing between www and non-www URLsData URIsEvolution of HTTPIdentifying resources on the WebMIME TypesMIME types: Complete list of MIME typesCSPContent-Security-PolicyContent-Security-Policy-Report-OnlyCSP: base-uriCSP: block-all-mixed-contentCSP: child-srcCSP: connect-srcCSP: default-srcCSP: font-srcCSP: form-actionCSP: frame-ancestorsCSP: frame-srcCSP: img-srcCSP: manifest-srcCSP: media-srcCSP: object-srcCSP: plugin-typesCSP: referrerCSP: report-uriCSP: require-sri-forCSP: sandboxCSP: script-srcCSP: style-srcCSP: upgrade-insecure-requestsCSP: worker-srcHeadersAcceptAccept-CharsetAccept-EncodingAccept-LanguageAccept-RangesAccess-Control-Allow-CredentialsAccess-Control-Allow-HeadersAccess-Control-Allow-MethodsAccess-Control-Allow-OriginAccess-Control-Expose-HeadersAccess-Control-Max-AgeAccess-Control-Request-HeadersAccess-Control-Request-MethodAgeAllowAuthorizationCache-ControlConnectionContent-DispositionContent-EncodingContent-LanguageContent-LengthContent-LocationContent-RangeContent-TypeCookieCookie2DateDNTETagExpectExpiresForwardedFromHeadersHostIf-MatchIf-Modified-SinceIf-None-MatchIf-RangeIf-Unmodified-SinceKeep-AliveLarge-AllocationLast-ModifiedLocationOriginPragmaProxy-AuthenticateProxy-AuthorizationPublic-Key-PinsPublic-Key-Pins-Report-OnlyRangeRefererReferrer-PolicyRetry-AfterServerSet-CookieSet-Cookie2SourceMapStrict-Transport-SecurityTETkTrailerTransfer-EncodingUpgrade-Insecure-RequestsUser-AgentUser-Agent: FirefoxVaryViaWarningWWW-AuthenticateX-Content-Type-OptionsX-DNS-Prefetch-ControlX-Forwarded-ForX-Forwarded-HostX-Forwarded-ProtoX-Frame-OptionsX-XSS-ProtectionMethodsCONNECTDELETEGETHEADMethodsOPTIONSPATCHPOSTPUTStatus100 Continue101 Switching Protocols200 OK201 Created202 Accepted203 Non-Authoritative Information204 No Content205 Reset Content206 Partial Content300 Multiple Choices301 Moved Permanently302 Found303 See Other304 Not Modified307 Temporary Redirect308 Permanent Redirect400 Bad Request401 Unauthorized403 Forbidden404 Not Found405 Method Not Allowed406 Not Acceptable407 Proxy Authentication Required408 Request Timeout409 Conflict410 Gone411 Length Required412 Precondition Failed413 Payload Too Large414 URI Too Long415 Unsupported Media Type416 Range Not Satisfiable417 Expectation Failed426 Upgrade Required428 Precondition Required429 Too Many Requests431 Request Header Fields Too Large451 Unavailable For Legal Reasons500 Internal Server Error501 Not Implemented502 Bad Gateway503 Service Unavailable504 Gateway Timeout505 HTTP Version Not Supported511 Network Authentication RequiredStatus
文字

HTTP 请求的目标被称为“资源”,这个性质没有进一步定义; 它可以是文档,照片或其他任何东西。每个资源都由 HTTP 中用于标识资源的统一资源标识符(URI)标识。

Web 上资源的身份和位置主要由一个 URL(统一资源定位器,一种 URI)提供。有时候,原因是同一个 URI 没有给出身份和位置:Alt-Svc当请求的资源需要客户访问另一个位置时,HTTP 使用特定的 HTTP 头。

网址(URLs)和URN

网址(URLs)

最常见的 URI 形式是统一资源定位符(URL),称为网址

https://developer.mozilla.org
https://developer.mozilla.org/en-US/docs/Learn/https://developer.mozilla.org/en-US/search?q=URL

任何这些 URL 都可以输入到浏览器的地址栏中,以告诉它加载关联的页面(资源)。

一个 URL 由不同的部分组成,其中一些是强制性的,另一些是可选的。一个更复杂的例子可能是这样的:

http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument

URNs

统一资源名称(URN)是在特定名称空间中按名称标识资源的 URI。

urn:isbn:9780141036144urn:ietf:rfc:7230

两个 URN 相对应

  • 乔治奥威尔的“九八十四”一书,

  • IETF 规范7230,超文本传输协议(HTTP / 1.1):消息语法和路由。

统一资源标识符(URI)的语法

计划或协议

http://是协议。它指示浏览器必须使用哪种协议。通常它是 HTTP 协议或其安全版本 HTTPS。Web 需要其中的一种,但浏览器也知道如何处理其他协议,如mailto:(打开邮件客户端)或ftp:处理文件传输,所以如果您看到这样的协议,请不要感到惊讶。常用的方案是:

方案

描述

数据 data

数据 URI

文件 file

主机特定的文件名

FTP

文件传输协议

HTTP / HTTPS

超文本传输协议(安全)

邮寄地址 mailto

电子邮件地址

SSH

安全的外壳

tel

电话

urn

统一资源名称

视图源

资源的源代码

ws / wss

(加密)WebSocket连接

权威

www.example.com是管辖命名空间的域名或权威。它指示正在请求哪个 Web 服务器。或者,可以直接使用 IP 地址,但由于它不太方便,因此不常用在 Web 上。

港口(出口或接口)

:80是这个实例中的端口。它表示用于访问 Web 服务器上资源的技术“门”。如果 Web 服务器使用 HTTP 协议的标准端口(HTTP 为80,HTTPS 为443)来授予其资源访问权限,通常会忽略它。否则它是强制性的。

路径

/path/to/myfile.html是 Web 服务器上资源的路径。在 Web 早期,这样的路径代表了 Web 服务器上的物理文件位置。如今,它主要是一个 Web 服务器处理的抽象,没有任何物理现实。

询问

?key1=value1&key2=value2是提供给 Web 服务器的额外参数。这些参数是用&符号分隔的键/值对列表。在将资源返回给用户之前,Web 服务器可以使用这些参数来执行额外的工作。每个 Web 服务器都有自己的参数规则,知道特定 Web 服务器如何处理参数的唯一可靠方法是询问 Web 服务器所有者。

分段

#SomewhereInTheDocument是资源本身另一部分的锚点。锚表示资源内部的一种“书签”,为浏览器指示位于该“书签”位置的内容。例如,在 HTML 文档中,浏览器将滚动到定义锚点的位置; 在视频或音频文档上,浏览器将尝试转到锚点代表的时间。值得注意的是,#之后的部分(也称为片段标识符)永远不会被发送到请求的服务器。

示例

https://developer.mozilla.org/en-US/docs/Learn
tel:+1-816-555-1212git@github.com:mdn/browser-compat-data.git
ftp://example.org/resource.txt
urn:isbn:9780141036144

产品规范

规范

标题

RFC 7230,第2.7节:统一资源标识符

超文本传输协议(HTTP / 1.1):消息语法和路由

上一篇:下一篇: