http 学习 摘要 (未完待续)

最近疯狂学习,脑子有点撑不住!

请求报文构成


响应报文构成

get

post 

put

head

delete

OPTIONS

TRACE

CONNECT



200  ok

204  No Content 请求处理成功 但没有资源可返回

206  请求部分内容,并且请求成功

301  Moved Permanently  请求的资源已经被分配了新的URI 以后应使用资源现在所指的URI

302 Found 临时重定向 请求的资源已被分配了新的URI 希望本次能使用新的URI

303 See Other 由于请求对应的资源存在者另一个URI 应使用GET 方法定向获取请求的资源  明确表示客户端应当采用GET方法获取资源 这是和302的区别

304 Not Modified  表示客户端发送附带条件的请求时, 服务器端允许请求访问资源, 但未满足条件的情况。304 状态码返回时, 不包含任何响应的主体部分。 304 虽然被划分在 3XX 类别中, 但是和重定向没有关系

307 Temporary Redirect 临时重定向  和302相同的含义

400 Bad Request  报文中存在语法错误

401 Unauthorized  表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证) 的认证信息。 另外若之前已进行过 1 次请求, 则表示用 户认证失败。返回含有 401 的响应必须包含一个适用于被请求资源的 WWW-Authenticate 首部用以质询(challenge)用户信息。 当浏览器初次接收到 401 响应, 会弹出认证用的对话窗口。


403 Forbidden  对请求资源的访问被服务器拒绝了

404 Not Found  该状态码表明服务器上无法找到请求的资源。 除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。

500 Internal Server Error 服务器端在执行请求是发生了错误,可能是web应用存在的bug或者否写临时故障。

503 Service Unavailable  表明服务器暂时处于超负载或正在进行停机维护, 现在无法处理请求。 如果事先得知解除以上状况需要的时间, 最好写入RetryAfter 首部字段再返回给客户端。

不少返回的状态码响应都是错误的, 但是用户可能察觉不到这点。比如 Web 应用程序内部发生错误, 状态码依然返回 200 OK, 这种情况也经常遇到。

数据转发应用程序

代理    缓存技术

网关    安全技术

隧道   安全通讯线路

报文 分 请求报文   和  响应报文           报文的结构如下



请求报文首部


响应报文首部


使用首部字段是为了给浏览器和服务器提供报文主体大小、 所使用的语言、 认证信息等内容。

HTTP 首部字段是由首部字段名和字段值构成的, 中间用冒号“:” 分隔

例如   首部字段名:字段值    Content-Type: text/html

字段值可以有多个字段值

当重复出现同一个字段名的时候不同浏览器会有不同的反映。

请求首部字段


响应首部字段


通用首部字段


实体首部字段 Entity header field



End-to-end首部   Hop-by-hop首部  哈哈哈 爸爸没看懂那吊到底 讲的啥! 暂且pass! 6.2.6


通用首部各字段名的解释及字段值

Cache-Control   操作缓存的工作机制



使用 no-cache 指令的目的是为了防止从缓存中返回过期的资源

 no-cache 代表不缓存过期的资源, 缓存会向源服务器进行有效期确认后处理资源, 也许称为 do-notserve-from-cachewithout-revalidation 更合适。


no-store  该指令规定缓存不能在本地存储请求或响应的任一部分


例 :Cache-Control:max-age=604800

当指定 max-age 值为 0, 那么缓存服务器通常需要将请求转发给源服务器。


使用 max-stale 可指示缓存资源, 即使过期也照常接收。
如果指令未指定参数值, 那么无论经过多久, 客户端都会接收响应;

如果指令中指定了具体数值, 那么即使过期, 只要仍处于 max-stale指定的时间内, 仍旧会被客户端接收


客户端仅在缓存服务器本地缓存目标资源的情况下才会要求其返回。 换言之, 该指令要求缓存服务器不重新加载响应, 也不会再次确认资源有效性。 若发生请求缓存服务器的本地缓存无响应, 则返回状态码 504 Gateway Timeout。

   

代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效。


要求所有的缓存服务器在接收到客户端带有该指令的请求返回响应之前, 必须再次验证缓存的有效性。 


无论是在请求还是响应中, 缓存都不能改变实体主体的媒体类型 ;可防止缓存或代理压缩图片等类似操作


字段名 Connection

1 控制不再转发给代理的首部字段


表示删除Upgrade字段

2 管理持久连接

Date 字段名

表明创建 HTTP 报文的日期和时间

Trailer

说明在报文主体后记录了哪些首部字段,该首部字段可应用在 HTTP/1.1 版本分块传输编码时。

Transfer-Encoding


Upgrade

检测 HTTP 协议及其他协议是否可使用更高的
版本进行通信, 其参数值可以用来指定一个完全不同的通信协议。


Via

使用首部字段 Via 是为了追踪客户端与服务器之间的请求和响应报文的传输路径。Via 首部是为了追踪传输路径, 所以经常会和 TRACE 方法一起使用。 

Warning

该首部通常会告知用户一些与缓存相关的问题的警告。

请求首部字段

Accept


通知服务器, 用户代理能够处理的媒体类型及媒体类型的相对优先级。 可使用 type/subtype 这种形式, 一次指定多种媒体类型。

Accept-Charset


Accept-Encoding


用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序。 可一次性指定多种内容编码。
Accept-Language


首部字段 Authorization 是用来告知服务器, 用户代理的认证信息(证书值) 。 通常, 想要通过服务器认证的用户代理会在接收到返回的401 状态码响应后, 把首部字段 Authorization 加入请求中。 共用缓存在接收到含有 Authorization 首部字段的请求时的操作处理会略有差异

Expect


客户端使用首部字段 Expect 来告知服务器, 期望出现的某种特定行为。 因服务器无法理解客户端的期望作出回应而发生错误时, 会返回状态码 417 Expectation Failed。

From


猜你喜欢

转载自blog.csdn.net/u012232736/article/details/79965838