Web

Web应用

Web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。

Web应用遵循的协议:

  1. HTTP(HyperText Transfer Protocol)。

    • HTTP使用TCP传输服务:

      • 服务器在80端口等待客户的请求

      • 浏览器发起到服务器的TCP连接(创建套接字Socket)

      • 服务器接受来自浏览器的TCP连接

      • 浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息

      • 关闭TCP连接

    • 无状态:服务器不维护任何有关客户端过去所发请求的信息。

  1. C/S结构。

HTTP连接类型

  1. 非持久连接 Nonpersistent HTTP

    • 每个TCP连接最多允许传输一个对象

    • HTTP 1.0 版本使用非持久性连接

    假定用户在浏览器中输入URL:www.baidu.com/xxx.jeg,其过程为:

    1. HTTP客户端向地址为www.baidu.com的服务器上的HTTP服务器进程(端口号80)发起TCP连接请求。
    2. HTTP服务器在端口80等待TCP连接请求,接受连接并通知客户端。
    3. HTTP客户端将HTTP请求消息(包括URL地址)通过TCP连接的套接字发出,消息中所含的URL表明客户端所需对象xxx.jeg。
    4. HTTP服务器收到请求消息,解析,产生包含所需要对象的响应消息,并通过套接字发给客户端。
    5. HTTP服务器关闭TCP连接
    6. HTTP客户端收到响应消息,解析HTML文件。

    响应时间分析与建模

    • RTT(Round Trip Time)从客户端发送一个很小的数据包到服务器并返回所经历的时间。
    • 响应时间(Response Time):发起,建立TCP连接--1个RTT;发送HTTP请求消息到HTTP响应消息的前几个字节到达--1个RTT;响应消息中所含的文件/对象传输时间
    • Total = 2RTT + 文件发送时间
  2. 持久性连接 Persistent HTTP

    • 每个TCP连接允许传输多个对象

    • HTTP 1.1 版本默认使用持久性连接

HTTP消息格式

HTTP协议有两类消息:请求消息(Request),响应消息(Response)。

  1. 请求消息 上传输入的方法
    • POST方法
      • 网页经常需要填写表格
      • 在请求消息的消息体中上传客户端的输入
    • URL方法
      • 使用GET方法
      • 输入信息通过request行的URL字段上传
  2. 响应消息

    • 成功响应
      • 200 OK
      • 201 Created
      • 202 Accepted
    • 重定向
      • 300 Multiple Choice
      • 302 Moved Permanently
      • 302 Found
      • 307 Temporary Redirect
      • 308 Permanent Redirect
    • 客户端响应

      • 400 Bad Request
      • 403 Forbidden
      • 404 Not Found
    • 服务器响应

      • 500 Internal Server Error
      • 501 Not Implemented
      • 502 Bad Gateway
      • 503 Service Unavailable
      • 504 Gateway Timeout
      • 505 HTTP Version Not Supported

        4.4.4. Cookie技术

        某些网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据。能够用于身份认证,推荐等等。

Cookie的组件

  1. HTTP响应消息的cookie头部行
  2. HTTP请求消息的cookie头部行
  3. 保存在客户端主机上的cookie文件,由浏览器管理
  4. Web服务器端的后台数据库

Web缓存/代理服务器技术

在不访问服务器的前提下满足客户端的HTTP请求,可以缩短客户请求的响应时间,减少机构/组织的流量,在大范围内实现有效的内容分发。