【图解HTTP】

图解HTTP

1、TCP位于传输层,提供可靠的字节流服务。所谓的字节流服务,是为了方便传输,把大块数据分割成报文段(segment)为单位的数据包进行管理。


2、三次握手 a、SYN  b、SYN/ACK  c、ACK


3、URI(uniform resource identifier)同一定位标识符 

URL 是URI的子集


URI格式:协议方案名://登陆信息认证(user:pass)@服务器地址:服务器端口/带层次的文件路径?查询字符串#片段标识符
URI:https://user:[email protected]:80/dir/index.html?uid=1#ch1
URN和URL都是URI的子集


URI—Universal Resource Identifier通用资源标志符
Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的
URI一般由三部组成
①访问资源的命名机制
②存放资源的主机名
③资源自身的名称,由路径表示,着重强调于资源。



4、
URL—Uniform Resource Location统一资源定位符
URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。
采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URL一般由三部组成
①协议(或称为服务方式)
②存有该资源的主机IP地址(有时也包括端口号)

③主机资源的具体地址。如目录和文件名等



4、
请求行 : 请求方法  /URL  协议/版本号      如果不是访问特定资源二十对服务器本身发起亲贵,可以用*代替
OPTION * HTTP/1.1


请求头
(空行)
内容实体


响应行
响应头
(空行)
内容实体


5、HTTP是一种不保存状态,即无状态(stateless)。HTTP协议自身部队请求和相应之间的通信状态进行保存,协议对请求或响应都不做持久化处理。




6、HTTP1.1中使用的方法
GET    POST
PUT:传输文件,在报文主体中包含文件内容,然后保存在请求URI指定的位置。但是由于该方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,因此一般web网站不使用该方法,或者配合web应用程序的验证机制使用


HEAD:获得报文首部
与GET一样,但是不返回报文主体,用于确认URI的有效性及资源更新的日期时间等


DELETE:删除文件,删除指定URI选择的文件


OPTION:询问支持的方法  OPTION方法用来查询针对请求URI指定的资源支持的方法


TRACE:追踪路径  在请求首部 要填写Max-Forwards:2


CONNECT:要求在与代理服务器通信时建立隧道


7、HTTP1.1和部分HTTP1.0的长连接减少了TCP连接的重复建立和断开所造成的额外开销
持久连接还使得多数请求以管线化(pipelining)方式发送成为可能。从前发送请求后需要等待并收到相应,才能发送下一个请求。管线化技术出现后,不用等待相应亦可直接发送下一个请求,

8、cookie

客户端第一次像服务器发送请求的时候,服务器的相应报文的首部字段里面会有set-cookie字段去通知客户端保存相应的cookie。客户端下一次访问服务器的时候,就会在请求报文的首部字段包含cookie信息,然后服务器接到请求会在对比cookie信息,返回相应的报文。

cookie生命周期引用:点击打开链接

9、报文:HTTP通信的基本单位,由8位组字节流组成,通过HTTP通信传输
实体:作为请求或相应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体
当对实体主体进行编码操作时,实体主体的内容发生改变,才导致它和报文主体产生差异。
分块传输(chunked transfer coding)实体主体分块的功能。分块传输编码会将实体主体分成多个部分,每一块都会用16进制来标块的大小,而实体主体的最后一块会使用0来标记。


10、发送多种数据的多部分对象集合:采用MIME(multipurpose Internet mail extension, 多用途因特网邮件扩展机制)
multipart/form-data: 在web表单文件上传时使用
multipart/byteranges:状态码206  相应报文包含了多个范围的内容使用。

 

11、获取部分内容的范围请求  range request。 请求首部:关键字:Range:bytes=5001-10000

12、http状态码:

200:请求成功,返回相应资源
204:请求成功,无返回资源
206:partial content  请求成功,返回客户端所请求的资源(一般此时客户端要求部分资源 请求报文指定了Content-Range字段)


301:Moved Permanently 永久性重定向
302: 暂时性重定向
303:该状态码表示由于请求对应的资源存在着另一个URI,应该使用GET方法定向获取请求的资源。
304:not modified 表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但为满足条件的情况。附带条件一般指:请求首部含有If-Modified-Since, If-None-Match,If-Range,If-Unmodified-Since
307:temporary Redirect 临时重定向   




400 Bad Request  一般表示请求报文中存在语法错误
401 unauthorized 未授权 返回401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部以质询用户信息。当浏览器啊初次接收到401响应,会弹出认证用的对话窗口。
403 Forbidden
404 Not found


500 Internet Server Error  表示服务器段在执行请求时发生了错误。

503 Service Unavailable  表示服务器暂时处于超负载状态或正在惊醒停机维护,现在无法处理请求。

13 代理服务器

网关:

隧道:

14、通用首部字段:

(1)Cache-Control:

缓存请求指令表:

缓存响应指令表:

注意

public  :表示在缓存服务器中的缓存可以被其他任何请求该资源的用户利用

private :表示缓存服务器中的缓存只能被特定的用户请求。

no-cache: 目的是防止从缓存服务器中返回过期的资源。若对no-cache进行赋值(只能在响应报文中赋值),那么客户端在接受这个相应报文时就不能缓存。no-cache并不是表示一定不能缓存,只是表示不缓存过期的资源

no-store:一般表示相应报文中含有机信息,一定不会进行缓存(包括在客户端或者在各级缓存服务器)

max-age:缓存过期时间

(2)Connection:

控制不再转发给代理的首部字段+管理持久连接

(3)Date:创建HTTP报文的日期和时间

(4)pragma:历史遗留字段,仅作为与HTTP1.0向后兼容而定义

15、请求首部字段:

猜你喜欢

转载自blog.csdn.net/Awille/article/details/81038283