Web与Http概述

1.Web和Http

    Web应用层协议为超文本传输协议(Hyper Text Transfer Protocol,HTTP)。

    Web页面包含许多对象,一个对象是一个文件,如一个HTML文本、一个图片。

    Http使用TCP作为运输层协议,服务器不记录客户的状态信息,所以Http是一个无状态协议。

2.持续连接和非持续连接

    每个请求和响应通过单独的TCP连接发送,这是非持续连接;所有请求和响应都通过一个TCP连接发送,这是持续连接。

    2.1非持续连接

        客户端与服务端建立TCP连接需要经历“三次握手”。简要过程:客户端发送Tcp连接请求,服务端收到后作出确认响应,最后客户端向服务端返回确认。

        通常客户端在第三次握手(返回确认)时向服务端发送Http请求,服务端则取出对应HTML页面返回给客户端。

        粗略讲,总响应时间为两个RTT加HTML传输时间(RTT为往返时间)。

        非持续连接每次客户端请求都要和服务端建立新的TCP连接,经受两倍的交付时延,效率较低。

    2.2持续连接

        采用持续连接,客户端和服务端建立TCP连接后保持连接打开,可使用同一TCP连接在客户和服务端之间传送web页面。

        服务器默认使用持续连接,在一定时间(可配置)后仍未使用,服务器就关闭该连接。

3.Http报文格式

    3.1Http请求报文

        请求行:方法字段,URL字段,协议版本字段

        首部行:请求的参数设定

        实体体:POST方法使用提交表单内容。

        例:GET  sp  /dir/index.html  sp  HTTP/1.1  cr lf

               Host: sp www.somehost.com cr lf

               User-agent: sp Mozilla/5.0  cr lf

               cr lf

               name=zhangsan&password=sadwnf cr lf

               cr lf

               cr lf

           sp表示空格,cr表示回车,lf表示换行。

    3.2Http响应报文

        状态行:协议版本号,状态码,状态信息 

        首部行:响应参数

        实体体:服务端返回的响应内容

         

         例:HTTP/1.1  sp  200  sp OK   cr lf

               Last-Modified: Tue,09 Aug 2011 16:03:32 GMT cr lf

               Server: sp Apache/2.2.3  cr lf

               cr lf

               <html><body>login success!</body></html> cr lf

               cr lf

               cr lf

           sp表示空格,cr表示回车,lf表示换行。

4.客户端与服务端交互:cookie

    cookie是为了跟踪客户信息而使用的技术。由客户端(通常是浏览器)管理的cookie文件,里面存储了web站点及其对应的客户唯一标示码。

    Http是无状态协议,服务器端不保存客户状态,故使用cookie来实现服务端对客户端的跟踪。

    cookie包含4个部分:1)由客户端浏览器管理的cookie文件;2)客户请求报文中的cookie首部行;3)服务器端的对应后端数据库;4)服务端响应报文中的cookie首部行。

    交互逻辑:客户第一次访问某个web站点时,该站点为该客户生成一个唯一识别码(sessionID)并存入web后端数据库,服务端响应报文中使用set-cookie首部行,客户端浏览器收到后在其管理的cookie文件中存入该站点对应的sessionID。待下次客户访问该站点时浏览器请求报文中携带对应cookie首部行,服务器即可实现对客户的跟踪。

5.Web缓存

    Web缓存服务器又称Web代理服务器,可以代替初始Web服务器对Http请求进行响应。

    Web缓存服务器可以增加响应速度,可以减少因特网流量从而改善网络整体应用性能。

    运行机制:客户浏览器与Web缓存服务器连接在同一个高速局域网上。客户端向Web缓存服务器发送请求并建立TCP连接;Web缓存器检查本地是否缓存了请求对象的副本,若有,则直接返回给客户端;没有则打开一个到该对象原始服务器的TCP连接,获取到该对象并在Web缓存器上存储一份副本,然后向客户端返回响应报文。

6.条件GET方法

    Http协议的一种机制,如果1)请求报文中使用GET方法,2)并且请求报文中包含一个“If-Modified-Since:”首部行,则这个Http请求是一个条件GET请求报文。

    条件GET方法允许Web缓存器证实它的对象是最新的。

    运行机制:客户端向缓存器请求对象时,缓存器从原始服务器获取对象,缓存在本地并转发给客户端。同时客户端也缓存了对象的最后修改日期。缓存器可以发送条件GET执行检查对象是否最新,请求首部行中“If-Modified-Since:”携带者原始服务器发送的响应报文中的“Last-Modified:”,即最后修改日期。若对象没有被修改,原始服务器返回响应报文 状态为304 Not Modified;若被修改则返回最新的对象给缓存器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值