计算机网络——HTTP(1)
首先HTTP协议,Hypertext Transfer Protocol 超文本传输协议,是在应用层的协议,是基于传输层的TCP协议之上的。
协议可以被分为服务端与客户端两个部分组成,客户端向服务端发送请求报文,服务端返回响应报文。请求报文必须由请求方法,请求资源的URI,协议版本和内容实体所组成。响应报文则由协议版本,状态码,原因短语及实体主体所构成。
HTTP协议是一个无状态协议,不保存之前的连接状态,之前连接所产生的一些响应报文和请求报文均不保存。但是现在引入了Cookie技术来完善状态管理机制,通过在响应报文和请求报文中添加相关的Cookie信息来实现。
·由服务器端在响应报文中添加一个set—cookie的字段信息,通知客户端保存对应的cookie值,在下次发送请求报文时添加此cookie值,服务器便可检查对应的cookie值比对记录获取之前的状态信息。服务器主动率先发送包含cookie值的报文,客户端内处理存储。
请求报文的几种方法,get方法用于获取服务器上的相关资源,获取已经被URI定位识别的资源,其中URI表示统一资源标识符,用于标识某互联网资源,而URL属于是该资源的所处的位置,这个是URI的子集的关系。
POST方法用于传输实体主体,也就是一般用于由客户端向服务器传输内容。
HEAD方法获取相应资源的首部信息,验证URI对应资源的有效性和资源的更新时间,验证通信状态。
关于持久化连接,在最初的版本中HTTP是不支持持久化连接的,当短时间内多次传输文件内容时就会反复建立连接,浪费资源。现在1.1版本默认持久化连接,直到任意一端明确提出中断连接为止。并且现在已经支持管线化了,即不用等待响应报文到达,就可以并行发送多个请求报文了。
最常见的就是404服务器上没有对应资源,400就是报文中存在语法错误,可能是格式错误。503就是服务器端超负载或者已停机。
代理服务器就是接受客户端请求之后将其进行转发的应用程序,它不改变请求的URI,只是具有转发功能。目标资源所在的服务器被称为源服务器,请求报文和响应报文每经过一个代理服务器就在报文首部的via字段中添加该代理服务器的信息,最后就可以形成路径。
代理服务器可以利用缓存技术来减少网络带宽的流量,降低源服务器的压力。在资源转发的过程中,缓存代理服务器会将资源的副本保存在代理服务器上,遇到相同请求资源时可以直接返回,但是定期会更新缓存内容。
如果是仅具有转发功能而不修改报文内容的代理服务器被称为透明代理,反之则是非透明代理。
网关的工作机制和代理类似,但是它是服务器,而代理是应用程序,网关能使得通信线路上的服务器提供非HTTP的服务,可以提升通信的安全性。
网站TAG: