http报文发送与接收设计与实现
HTTP:超文本传输协议(HyperText Transfer Protocol)是目前为止互联网上运用最普遍的网络协议之一。HTTP设计之初的目的是为了提供一种接纳和发送HTML页面的方法。Http是万维网协会和Internet任务小组共同协作而发生的结果。Http—般来说由客户端、效劳器端和一个协议组成,这个协议就是TCP协议。
经过Web阅读器客户端发起一个央求到效劳器端。Http协议可以再任何网络协议或自定义网络上停止完成,Http协议假定其下层协议可以为其提供牢靠地传输机制,所以,任何可以提供这种保证的协议都可以拿来供应Http协议运用。
绝大少数状况下Http通讯是由用户手动启动的,改良程包括了一个对某个效劳器资源的央求。在比拟复杂的状况下,普通可以经过在客户端和效劳器端假定一条复杂的通道来完成。
还有更为复杂的状况是在通讯线路上有多个中介媒体。罕见的中介媒体有三个,区分是:代理(Proxy),网关(Gateway)和通道(Tunnel)。代理(Proxy)是一个转发机构,它用于接纳用户对一个资源的央求,该央求由一个URI相对格式标识的。代理改写央求的一局部或许全部,改写完成之后将该信息转发到URI标志的网络效劳器。网关(Gateway)是一个接纳组件,它作为一些效劳器的某个层,必要的时分,将央求翻译成为该网络效劳器支持的规范或协议。通道(Tumiel)是两个衔接的转换点,它并不改动音讯的任何信息。
客户端和效劳器端之间的停止通讯时会经过三个中介体,所以央求或反应音讯时要经过四个相互独立的衔接进程。这些关于某些HTTP通讯来说显得十分重要,由于理想中某些HTTP衔接选项只能央求临近的衔接或通讯端点。
这里每一个中间媒体都可以同时支持一个或多个通讯的进程。
一次HTTP通讯进程称普通由四步组成:
(1)客户端央求和效劳器端树立衔接。
(2)客户端向效劳器端提出访问央求。
(3)当效劳器端接受客户端央求时,发回照应信息。
(4)央求完成之后,两端断幵衔接。
由于HTTP采用了TCP衔接,而且该衔接仅存在于本次通讯当中,所以客户端和效劳器端都不会保管上一次的衔接形状[13]。HTTP协议之所以采取这种有形状衔接通讯机制,就是为了有效的提高效劳器的任务效率。当一个HTTP央求完毕时,效劳器会断开两者的衔接,假设客户端想继续访问的话,则需求重新树立衔接。