应用层协议HTTP (端口号:80 TCP连接)


web:

web使用应用层协议HTTP(端口号:80,使用的传输层协议为TCP),web由多个对象组成,一般若web包含html文本和5个图片,则这个web有6(1+5)个对象。每个对象通过对应的URL进行引用。

 

HTTP服务器并不保存关于客户机的任何信息,故称HTTP为无状态协议。即使客户端在很短的时间内对同一对象进行请求,服务器也会进行反应。

 

非持久连接:

web每个对象的请求均建立一个独立的TCP,但这些TCP可并行建立从而加快了响应速度。

例如:

①HTTP客户机进程在端口80发起一个到服务器的TCP连接。

②HTTP客户机通过socket向服务器发出一个请求报文,其中包含文件的路径。

③HTTP服务通过socket接受请求并发送请求对象。

④HTTP服务器通知TCP并断开连接,一般只有在数据传输完成后TCP才会断开。

⑤HTTP客户机接收响应报文并断开TCP。

⑥对于非持久连接,要重复上面的过程发送每个对象。

 

持久连接:对于同一客户机与服务器之间只建立一条TCP,所有对象由TCP传输。

 

RTT:round-trip time  往返时间。建立TCP连接要进行3次捂手,1.5个RTT。

 

HTTP请求报文:

方法字段      URL           HTTP协议版本

GET          /somedir/page.heml      HTTP/1.1                //第一行为 请求行 request line  后面为首部行与实体部分

connection  :close                                             非持久连接

user-agent  :***                                                客户机使用的浏览器                首部行 header line 

accept-language :***                                         使用的语言

*****entity 实体部分*******

一般而言,使用GET方法时,实体部分为空。使用post方法时实体部分不是空。例如在客户端向服务器提交密码与用户名是要使用post方法。向服务器提供数据时不一定使用post方法,例如可以使用扩展的get方法(利用表单生成的请求可以使用GET方法)

例如:www.s.com/animals?monkey&bananas    这个URL就携带了部分提交给服务器的数据。

 

HTTP响应报文:

HTTP/1.1       200(状态码)   ok                                状态行

connection      close     非持久连接

......data......

server****                  服务器类型

last-modefied               对象最后更改的时间,一般用于web缓存的更新依据              首部行    header line 

content-length 

content-type                   text/html

......data......

 

常见的状态码:    200  ok   请求成功

        301         moved  permanently  请求对象被永久的转移了,并返回了对象存储的新URL。

        400         bad  request    服务器无法理解的请求内容

        404          not found       请求的内容不在服务器中。

        505          HTTP version  not  supported

 

虽说HTTP是无状态的,但可以使用cookie使服务器跟踪用户的动作。

cookie系统由四个部分组成:

①HTTP响应报文中有一个cookie首部行。

②HTTP请求报文中有一个cookie首部行。

③用户系统中有一个cookie文件。

④在web站点有一个关于cookie的后端数据库。

cookie标识码由服务器产生,并用于服务器对端系统的身份识别,web系统可以使用cookie(设识别码为12345)记录用户12345(系统不知道用户的真实姓名)的行为,并通过这些数据对用户做出一些反应,例如对用户推荐一些产品。若将cookie识别码与用户的用户名和密码对应,则用户在下次登录系统是可以不用输入用户名和密码。

 

cookie的一个争议就是使用cookie可能会侵犯用户的隐私。

 

web缓存器(web cache )也称为web代理器(proxy  server):

web  cache即使客户机也是服务器,当浏览器向web缓存发出请求时,web缓存为服务器,当web缓存向源web服务器请求数据时(缓存中缺少某些对象)其又是客户机。

web  cache可以是一台主机由ISP提供,也可以是本PC机上的一个通用的软件。

web  cache存在与源web  sever 同步的问题,一般web缓存会在一定的时间里与源web server同步,同步时使用的是条件GET指令。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM