http协议详解之二:http请求周期

http协议详解之二:http请求周期

一:

CS即Client/Server客户端与服务器结构系统,是一种提供服务和使用服务的关系.例如,我们去银行取钱,我们就是银行的Client,而银行作为一个整体是我们的Server.Client和Server相互依存而存在.

计算机里的Client/Server系统就是某一部分程序充当服务的使用者,另外一部分程序充当服务的提供者这样而构成的系统,比如:

1,操作系统和硬件系统之间的关系,就是Client与Server之间的关系.操作系统作为Client来调用硬件,系统所提供的功能.硬件系统是Server,操作系统是Client.
2,应用软件与操作系统之间的关系,就是Client与Server之间的关系,他们之间所提供的服务,叫做操作系统的SDK或者API.
3,客户端应用软件和数据库服务器软件之间的关系,也是Client和Server之间的关系,他们之间的服务,是数据库系统所提供的数据服务,而调用这一服务的方式,是SQL语言.


BS即Browser/Server结构浏览器和服务器结构,Browser/Server结构也是一种Client/Server结构,它可看作是一种由传统的二层模式Client/Server结构发展而来的三层模式Client/Server结构在Web上应用的特例。主要是利用Web浏览器技术:结合浏览器的多种脚本语言和ActiveX技术,用通用浏览器实现原来需要复杂专用软件才能实现的功能,同时节约了开发成本。


Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。 
二:
当在浏览器输入网址,发起http请求(http请求底层是TCP协议).
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 


UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快,如ping.


TCP与UDP的底层都是socket,
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,通常也称作"套接字".
HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力.

三:

发起请求之后,客户端需要与公网上的目标服务器建立链接.建立这个链接之前,客户端把域名发到DNS服务器上,DNS服务器上存储着域名映射表,从而DNS找到域名对应的目标服务器地址. 即客户端向DNS服务器发送一个域名,DNS服务器向客户端响应一个IP地址,这个IP地址是web服务器的地址.此时,客户端用这个IP地址与目标服务器建立链接.
客户端给目标服务器发的请求叫http请求,目标服务器给客户端的响应叫http响应.
一次http请求/响应结束之后,客户端与目标服务器建立的链接就断开了,下次需要重新建立请求,并且与上次的链接是无关的,客户端与目标服务器建立的链接是无状态的.