共计 2125 个字符,预计需要花费 6 分钟才能阅读完成。
1、告知服务器用意的 HTTP 办法
(1) GET : 获取资源
GET 办法用来申请拜访已被 URI 辨认的资源。指定的资源经服务器 端解析后返回响应内容。也就是说,如果申请的资源是文本,那就保 持原样返回; 如果是像 CGI(Common Gateway Interface,通用网关接 口)那样的程序,则返回通过执行后的输入后果。
申请 | GET /index.html HTTP/1.1 Host: www.hackr.jp If-Modified-Since: Thu, 12 Jul 2012 07:30:00 GMT |
---|---|
响应 | 仅返回 2012 年 7 月 12 日 7 点 30 分当前更新过的 index.html 页面资源。如果未 有内容更新,则以状态码 304 Not Modified 作为响应返回 |
(2) POST: 传输实体主体
POST 办法用来传输实体的主体。
申请 | POST /submit.cgi HTTP/1.1 Host: www.hackr.jp Content-Length: 1560(1560 字节的数据) |
---|---|
响应 | 返回 submit.cgi 接收数据的处理结果 |
(3) PUT: 传输文件
鉴于 HTTP/1.1 的 PUT 办法本身不带验证机制,任何人都能够 上传文件 , 存在安全性问题,因而个别的 Web 网站不应用该办法。若 配合 Web 应用程序的验证机制,或架构设计采纳
(4) HEAD: 取得报文首部
HEAD 办法和 GET 办法一样,只是不返回报文主体局部。用于确认 URI 的有效性及资源更新的日期工夫等。
(5) DELETE: 删除文件
DELETE 办法用来删除文件,是与 PUT 相同的办法。DELETE 办法按 申请 URI 删除指定的资源。
然而,HTTP/1.1 的 DELETE 办法自身和 PUT 办法一样不带验证机 制,所以个别的 Web 网站也不应用 DELETE 办法。当配合 Web 利用 程序的验证机制,或恪守 REST 规范时还是有可能会凋谢应用的。
响应返回状态码 204 No Content(比方 : 该 html 已从该服务器上删除)
(6) OPTIONS: 询问反对的办法
OPTIONS 办法用来查问针对申请 URI 指定的资源反对的办法。
申请
OPTIONS * HTTP/1.1 Host: www.hackr.jp
响应 | HTTP/1.1 200 OK Allow: GET, POST, HEAD, OPTIONS (返回服务器反对的办法) |
---|---|
(7) CONNECT: 要求用隧道协定连贯代理
CONNECT 办法要求在与代理服务器通信时建设隧道,实现用隧道协 议进行 TCP 通信。次要应用 SSL(Secure Sockets Layer,安全套接 层)和 TLS(Transport Layer Security,传输层平安)协定把通信内容 加 密后经网络隧道传输。
办法名辨别大 小写,留神要用大写字母。
2、长久连贯节俭通信量
HTTP 协定的初始版本中,每进行一次 HTTP 通信就要断开一次 TCP 连贯。
2.1 长久连贯
HTTP/1.1 和一部分的 HTTP/1.0 想出了 长久连贯 (HTTP Persistent Connections,也称为 HTTP keep-alive 或 HTTP connection reuse) 的办法。长久连贯的特点是,只有任意一端 没有明确提出断开连接,则放弃 TCP 连贯状态。
长久连贯的益处在于缩小了 TCP 连贯的反复建设和断开所造成的额 外开销,加重了服务器端的负载。另外,缩小开销的那局部工夫,使 HTTP 申请和响应可能更早地完结,这样 Web 页面的显示速度也就相 应进步了。
2.2 管线化
长久连贯使得少数申请以管线化 (pipelining) 形式发送成为可能。从 前发送申请后需期待并收到响应,能力发送下一个申请。管线化技术 呈现后,不必期待响应亦可间接发送下一个申请。
这样就可能做到同时并行发送多个申请,而不须要一个接一个地期待响应了。
比方,当申请一个蕴含 10 张图片的 HTML Web 页面,与挨个连贯相 比,用长久连贯能够让申请更快完结。而管线化技术则比长久连贯还 要快。申请数越多,时间差就越显著。
3、应用 Cookie 的状态治理
Cookie 技术通过在申请和响应报文中写入 Cookie 信 息来管制客户端的状态。
Cookie 会依据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的 首部字段信息,告诉客户端保留 Cookie。当下次客户端再往该服务器 发送申请时,客户端会主动在申请报文中退出 Cookie 值后发送出 去。
- 申请报文(没有 Cookie 信息的状态)
GET /reader/ HTTP/1.1
Host: hackr.jp
* 首部字段内没有 Cookie 的相干信息
- 响应报文(服务器端生成 Cookie 信息)
HTTP/1.1 200 OK
Date: Thu, 12 Jul 2012 07:12:20 GMT
Server: Apache
<Set-Cookie: sid=1342077140226724; path=/; expires=Wed, 10-Oct-12 07:12:20 GMT>
Content-Type: text/plain; charset=UTF-8
- 申请报文(主动发送保留着的 Cookie 信息)
GET /image/ HTTP/1.1
Host: hackr.jp
Cookie: sid=1342077140226724
最初
我建了一个《图解 HTTP》共读会,感兴趣的搭档能够一起来读(ardenzhaogx)