客户端发送请求的例子:html
GET /index.html HTTP/1.1 HOST: hackr.jp
GET表示请求的方式、方法(method),/index.html表示请求指定资源,称为URI(request-URI),最后HTTP/1.1表示客户端使用的协议版本。git
请求报文是由请求方法、请求 URI、协议版本、可选的请求首部字段和内容实体构成的。github
服务器响应的例子:安全
HTTP/1.1 200 ok Date: Tue, 10 Jul 2012 06:50:15 GMT Content-Length: 363 Content-Type: text/html <html> ...
HTTP/1.1: 服务器的协议版本服务器
200 ok: 响应的状态码和缘由短语(简短的解释)
Date: Tue, 10 Jul 2012 06:50:15 GMT: 建立响应的时间
下面就是首部字段,而后空一行就是内容实体。cookie
GET方法用来请求已被已被URI识别(存在的)的资源。指定的资源经服务器解析后返回响应内容。网络
向服务器传输主体,POST的主要目的并非获取响应的主体内容。加密
与GET相似,只是响应不会返回报文主体部分,只有头部。spa
用来查询针对请求URI指定的资源支持的方法。
好比:代理
// 请求 OPTIONS * HTTP/1.1 Host: www.hackr.jp // 响应 HTTP/1.1 200 OK Allow: GET,POST,HEAD,OPTIONS
客户端经过TRACE方法能够查询发出去的请求是怎么被加工修改、篡改的。一个请求想要链接到原目标服务器可能经过代理中转,TRACE方法就是用来确认链接过程当中发生的一系列的操做。可是TRACE方法原本不怎么经常使用,在加上它容易引起XST(Cross-Site Tracing,跨站追踪)攻击,一般就更不会使用了
要求在与代理服务器通讯时创建隧道,实现用隧道协议进行TCP通讯。主要使用SSL(Secure Sockets Layer,安全套装层)和TSL(Transport Layer Security,传输层安全)协议把通讯内容加密后经网络隧道传输。
HTTP初期的版本中,每进行一次通讯就要断开一次TCP链接,以当年通讯状况来讲,由于都是容量小的文本传输,因此即便这样也没有什么问题,可是如今来看,文档中包含大量的图片是很日常的需求,因此这种通讯一次就断掉的方法就不可取了。
在HTTP/1.1中,全部的默认链接都是持久链接,在HHTP/1.0中并无标准化。客户端和服务端须要同时支持持久化才行。
相应的头部:
1.请求报文(没有Cookie信息状态)
GET /reader/ HTTP/1.1 Host: hackr.jp * 首部字段没有cookie的相关信息
2.响应报文(服务器生成Cookie信息)
HTTP/1.1 200 OK Date: Thu, 12 Jul 2012 07:12:20 GMT Server: Apache <Set-Cookie: sid=1123423543234325; path=/; expires=Wed,10-Oct-12 07:12:20 GMT> Content-Type: text/plain; charset=UTF-8
3.请求报文(自动发送保存着Cookie信息)
GET /image/ HTTP/1.1 Host: hackr.jp Cookie: sid=1123423543234325
github 欢迎Star,欢迎讨论