-
HTTP协议和TCP/IP 协议族内的其他众多的协议相同,用于客户端和服务器之间的通信.请求访问文本或图像等资源的一端称为客户端,而提供资源相应的一端称为服务器端.
-
应用HTTP协议时,必定是一端担任客户端角色,另一端担任服务端角色.有时候,按实际情况,两台计算机作为客户端和服务端端角色有可能会互换.但就仅从一条通信路线来说,服务端和客户端的角色是确定的,而HTTP协议能够明确区分哪端是客户端,哪端是服务端.
-
HTTP协议规定,请求从客户端发出,最后服务端响应该请求并返回.换句话说,肯定是先从客户端开始监理通信的,服务端在没有接收到请求之前不会发送响应.
-
起始行开头的GET表示请求访问服务器的类型,称为方法(method) .随后的字符串指明了请求访问的资源对象,也叫做请求URI(request-URI) 最后的HTTP1.1 ,即HTTP的版本号,用来提示客户端使用的HTTP协议功能 .
-
请求报文是由请求方法,URI,协议版本,可选的请求首部字段和内容实体构成的.
-
响应报文基本上由协议版本,状态码,(表示请求成功或失败的数字代码) ,用以解释状态码的原因短语,可选的响应首部字段以及实体主题构成.
-
HTTP是一种不保存状态,即无状态(stateless) 协议. HTTP协议自身不对请求和响应之间的通信状态进行保存.也就是说在HTTP这个界别,协议对于发送过的请求或响应都不做持久化处理.
-
使用HTTP协议,每当有新的请求发送时,就会有对应的新响应产生.协议本身并不保留之前一切的请求或响应报文的信息. 这是为了更快的处理大量事物,确保协议的可伸缩性,而特意把HTTP协议涉及成如此简单的.
-
可是,随着web的不断发展,因无状态而导致业务处理变得棘手情况增多了.
-
HTTP虽然是无状态协议,但为了实现期望保持状态功能,于是引入了cookie技术. 有了cookie再用HTTP协议通信,就可以管理状态了.
-
HTTP协议使用URI定位互联网上的资源.正是因为URI的特定功能,在护理阿旺上任意位置的资源都能访问到.
-
当客户端请求访问资源而发送请求时,URI需要将作为请求报文中的请求URI包含在内.指定请求URI的方式有很多.
-
GET(获取资源) : GET方法用来请求访问已被URI识别的资源.指定的资源服务端解析后返回响应内容.也就是说,如果请求的是资源是文本,那就保持原样返回;如果是像CGI(通用网关接口)那样的程序,则返回经过执行后的输出结果.
-
POST(传输实体主体) : 虽然用GET方法也可以传输实体的主体我,但一般不用GET方法进行传输,而是用POST方法.虽说POST的功能与GET很相似,但POST的主要目的并不是获取响应的主体内容.
-
PUT(传输文件) : PUT方法用来传输文件.就像FTP协议的文件上传一样,需求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置. 但是,鉴于HTTP1.1. 的PUT方法本身不带验证机制,任何人都可以上传文件,存在安全性问题,因此一般的web网站不适用该方法.若配合web用用程序的验证机制,或架构设计采用rest(表征状态转移) 标准的同类web网站,就可能会开放使用PUT方法 .
-
DELETE(删除文件) : 用来删除文件,是与PUT相反的方法,delete方法按请求URI删除指定的资源.
-
持久连接节省通信量 : HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接. 以当年的通信情况来说,因为都是些容量很小的文本传输,所以即使这样也没有多大问题.可随着HTTP的普及,文档中包含大量图片的情况多了起来.因此每次的请求都会造成无畏的TCP连接建立和断开,增加通信量的开销.
-
持久连接 : 为解决上述TCP连接的问题HTTP1.1和一部分的HTTP1.0 相处了持久连接的方法.持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态 .
-
持久连接旨在建立1次TCP连接后进行多次请求和响应的交互 : 持久连接的好处在于减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务端的负载. 另外,减少开销的那部分时间,使HTTP请求和响应能够更早的结束,这样,web页面的显示速度也就相应提高了. 早HTTP1.1. 中,所有的连接默认都是持久连接,但是在HTTP1.0内并未标准化. 虽然有一部分服务器通过非标准化的手段实现了持久连接,但服务端不一定能够支持久久连接.毫无疑问,除了服务器,客户端也需要支持之久连接.
-
管线化 : 就吃连接似的多数请求以管线化(pipelining) 方式发送成为可能.从前发送请求后需要等待并收到响应,才能发送下一个请求.管线化技术出现后们不用等待响应亦可直接发送下一个请求.这样就能够做到同时并行发送多个请求,而不需要一个接一个的等待响应了.
-
与挨个连接相比,用就持久连接可以让请求更快结束.而管线技术则比持久连接还要快.请求数越多,时间差就越明显.
-
使用cookie 的状态管理 : HTTP是无状态协议,他不对之前发生过的请求和响应状态进行管理.也就是说,无法根据之前的状态进行本次的请求处理.不可否认,无状态协议当然也有它的优点.由于不必保存状态,自然可减少服务器的CPU及内存资源的小号.从另一侧面来说,也正是因为HTTP协议本身是非常简单的,所以才会被应用在各种场景里.
-
保留无状态协议这个特征的同事又要解决类似的矛盾问题,浴室引入的cookie技术.cookie技术通过在请求和响应报文中写入cookie信息来控制和客户端的状态.cookie会根据从服务端发送的响应报文内的一个叫做set-cookie的首部字段信息,通知客户端保存cookie.当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入cookie值后发送出去.服务端发现客户端发送过来的cookie之后,回去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息.
2.简单的HTTP协议
原创
©著作权归作者所有:来自51CTO博客作者JieeOk的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:1.了解web及网络基础
下一篇:3.HTTP报文内的HTTP信息
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
2.单链表逆置
单链表逆置
单链表逆置 List -
http协议的简单介绍
Linux的基础结构和知识
Linux 简单介绍 -
HTTP协议简单概述
HTTP协议的知识点,如http方法发,通信原理
HTTP 服务器 html -
http以及http协议简单理解
HTTP协议是超文本传输协议的缩写,是
服务器 客户端 编码类 -
Http协议简单解析(1)
Http协议简单解析。
协议 浏览器 Http