Web
Web应用
Web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
Web应用遵循的协议:
HTTP(HyperText Transfer Protocol)。
HTTP使用TCP传输服务:
服务器在80端口等待客户的请求
浏览器发起到服务器的TCP连接(创建套接字Socket)
服务器接受来自浏览器的TCP连接
浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息
关闭TCP连接
无状态:服务器不维护任何有关客户端过去所发请求的信息。
- C/S结构。
HTTP连接类型
非持久连接 Nonpersistent HTTP
每个TCP连接最多允许传输一个对象
HTTP 1.0 版本使用非持久性连接
假定用户在浏览器中输入URL:www.baidu.com/xxx.jeg,其过程为:
- HTTP客户端向地址为www.baidu.com的服务器上的HTTP服务器进程(端口号80)发起TCP连接请求。
- HTTP服务器在端口80等待TCP连接请求,接受连接并通知客户端。
- HTTP客户端将HTTP请求消息(包括URL地址)通过TCP连接的套接字发出,消息中所含的URL表明客户端所需对象xxx.jeg。
- HTTP服务器收到请求消息,解析,产生包含所需要对象的响应消息,并通过套接字发给客户端。
- HTTP服务器关闭TCP连接
- HTTP客户端收到响应消息,解析HTML文件。
响应时间分析与建模
- RTT(Round Trip Time)从客户端发送一个很小的数据包到服务器并返回所经历的时间。
- 响应时间(Response Time):发起,建立TCP连接--1个RTT;发送HTTP请求消息到HTTP响应消息的前几个字节到达--1个RTT;响应消息中所含的文件/对象传输时间
- Total = 2RTT + 文件发送时间
持久性连接 Persistent HTTP
每个TCP连接允许传输多个对象
HTTP 1.1 版本默认使用持久性连接
HTTP消息格式
HTTP协议有两类消息:请求消息(Request),响应消息(Response)。
- 请求消息
上传输入的方法
- POST方法
- 网页经常需要填写表格
- 在请求消息的消息体中上传客户端的输入
- URL方法
- 使用GET方法
- 输入信息通过request行的URL字段上传
- POST方法
响应消息
- 成功响应
- 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的组件
- HTTP响应消息的cookie头部行
- HTTP请求消息的cookie头部行
- 保存在客户端主机上的cookie文件,由浏览器管理
- Web服务器端的后台数据库
Web缓存/代理服务器技术
在不访问服务器的前提下满足客户端的HTTP请求,可以缩短客户请求的响应时间,减少机构/组织的流量,在大范围内实现有效的内容分发。