2Web and HTTP

Web and HTTP

URL格式:协议名+用户:口令+主机名+路径名+端口

Prot: //user:psw @www.someschool.edu/ someDept/pic.gif: port

HTTP概况

HTTP:超文本传输协议

Web的应用层协议

使用TCP
  • 客户端发起一个与服务器的TCP连接,端口号:80

  • 服务器接受客户的TCP连接

  • 在浏览器与Web服务器交换HTTP报文

  • TCP连接关闭

HTTP是无状态的

服务器并不维护关于客户的任何信息

HTTP连接
  • 非持久HTTP

    • 最多只要一个对象在TCP连接上发送
    • 下载多个对象需要多个TCP连接
    • HTTP/1.0使用非持久连接
  • 持久HTTP

    • 多个对象可以在一个TCP连接上传输
    • HTTP/1.1默认使用持久连接

HTTP请求

两种类型的HTTP报文:请求和响应

  • 请求报文

    • 请求行(命令+版本号+URL)
    • 若干首部行(包含域名、用户、连接方式等信息)
    • 额外的回车符(表示报文结束)
    • 实体行
  • 响应报文

    • 状态行(协议版本、状态码和状态信息)
    • 首部行
    • 数据

用户-服务器状态:cookie

无连接的特性会影响一些需要记录的网站的使用,因此出现了cookie机制,用于客户端和服务器之间保存历史记录或其它账户信息,规避无连接带来的影响。

4个组成部分
  • 在HTTP响应报文中有一个cookie的首部行

  • 在HTTP请求报文含有一个cookie的首部行

  • 在用户端系统中保留有一个cookie文件,由浏览器应用管理

  • 在Web站点有一个后端数据库,保留用户的cookie

Web缓存(代理服务器)

目标:不访问原始服务器,就能满足客户要求

  • 用户设置浏览器,通过缓存的访问Web

  • 浏览器将所有的HTTP请求发给缓存

    • 直接缓存中的对象,直接被返回
    • 对象不在缓存中,缓存请求原始服务器,然后再返回对象。

问题:对象再原始服务器中更新了,代理未更新

解决:使用条件式获取向原始服务器申请是否更新的head