图解 HTTP

2019-12-25  本文已影响0人  phpnet

图解 HTTP

[TOC]

前言

返回结果的 HTTP 状态码

HTTP 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。

状态码,以 3 位数字和原因短语组成。数字中的第一位指定了响应类别,后两位无分类。响应类别有以下 5 种。

在 RFC2616 上的 HTTP 状态码就达 40 种,若再加上 WebDAV(Web-based Distributed Authoring and Versioning,基于万维网的分布式创作和版本控制)(RFC4918、5842) 和附加 HTTP 状态码(RFC6585)等扩展,数量就达 60 余种,实际上经常使用的大概只有 14 种。

与 HTTP 协作的 Web 服务器

HTTP 通信时,除客户端和服务器以外,还有一些用于通信数据转发的应用程序,例如代理、网关和隧道。它们可以配合服务器工作。

在 HTTP 通信过程中,可级联多台代理服务器。请求和响应的转发会经过数台类似锁链一样连接起来的代理服务器。转发时,需要附加 Via 首部字段以标记出经过的主机信息。

代理有多种使用方法,按两种基准分类。一种是是否使用缓存,另一种是是否会修改报文。

HTTP 首部

字段名 说明 示例
Accept 指定客户端能够接收的内容类型 Accept: text/html
Accept-Charset 客户端可以接受的字符编码集 Accept-Charset: utf-8
Accept-Encoding 能够接受的内容编码方式 Accept-Encoding:gzip, deflate
Accept-Language 可以接受的自然语言列表 Accept-Language:zh-CN,zh;q=0.9,en;q=0.8
Accept-Datetime 指定接受的版本时间 Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT
Authorization 用于身份认证的凭证信息 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control 指定请求缓存机制 Cache-Control: no-cache
Connection 连接类型(默认持久连接) Connection: keep-alive
Cookie 向服务器发送的Cookie信息 Cookie: $Version=1; Skin=new;
Content-Length 请求信息长度 Content-Length: 348
Content-Type 当前请求MIME类型 Content-Type:application/json; charset=utf-8
Date 发送时间 Date:Thu, 23 Nov 2017 14:41:17 GMT
Expect 指明需要的特定服务器行为 Expect: 100-continue
Host 指明请求服务器的域名和端口号 Host:www.baidu.com:80
If-Match 只有请求内容与实体相匹配才有效 If-Match: "737060cd8c284d8af7ad3082f209582d"
If-Modified-Since 设置更新时间 If-Modified-Since: Sat,29 Oct 1994 19:43:31 GMT
If-None-Match 设置客户端ETag值 If-None-Match: "737060cd8c284d8af7ad3082f209582d"
If-Range 适用于断点续传下载 If-Range: "737060cd8c284d8af7ad3082f209582d"
If-Unmodified-Since 请求体在给定时间未修改才响应 If-Unmodified-Since: Sat,29 Oct 1994 19:43:31 GMT
Max-Forwards 限制代理或网关转发消息的次数 Max-Forwards: 10
Origin 跨域资源请求的地址 Origin: http://www.baidu.com
Pragma 设置特殊实现的指令 Pragma: no-cache
Proxy-Authorization 向连接代理认证的凭证信息 Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range 指定请求返回的字节数范围 Range: bytes=500-999
Referer 表明当前请求从哪个页面过来的 Referer: http://www.baidu.com
TE 指明期望使用的传输编码 TE: trailers, deflate
User-Agent 请求用户的身份信息 Mozilla/5.0 (Mac OS X 10_13_1) Chrome/62.0.3202.94 Safari/537.36
Upgrade 请求服务端升级协议 Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
Via 表明请求代理的来源地址 Via: 1.0 fred, 1.1 example.com(Apache/1.1)
Warning 消息实体中可能存在错误的警告 Warning: 199 Miscellaneous warning
上一篇下一篇

猜你喜欢

热点阅读