2-2Web和HTTP
2.2Web和HTTP
2.2.1HTTP概况
Web的应用层协议是超文本传输协议(HTTP)
由两个程序实现:一个客户端程序和一个服务器程序。通过交换HTTP报文进行会话
Web术语:
-
Web页面:由对象组成。
-
对象:一个对象是一个文件,都可通过一个URL寻址。
-
HTML基本文件:通过对象的URL地址引用页面中的其他对象。
-
Web浏览器:实现了HTTP的客户端
-
Web服务器:实现了HTTP的服务器端
HTTP使用TCP作为它的支撑运输协议
2.2.2非持续连接和持续连接
-
非持续连接:每一个请求/响应对是经一个单独的TCP连接发送
-
持续连接:所有的请求及其响应经相同的TCP连接发送
1.采用非持续连接的HTTP
-
往返时间:一个短分组从客户端到服务器再回到客户端所花费的时间
总共花费的时间是两次往返时间加上服务器传输HTML文件的时间
2.采用持续连接的HTTP
服务器在发送响应之后保持该TCP连接打开。相同的客户与服务器之间的后续请求与响应报文能够通过相同的连接进行传送。
2.2.3HTTP报文格式
1.HTTP请求报文
-
第一行:请求行
- 包含三个字段:方法字段、URL字段、HTTP版本字段
- 方法字段的值:GET、POST、HEAD、PUT、DELETE
- URL字段带有请求对象的标识
- 包含三个字段:方法字段、URL字段、HTTP版本字段
-
后续行:首部行
-
最后部分行:实体体
- POST报文时需要用户在表单字段中的输入值
2.HTTP响应报文
-
第一行:状态行
- 包含三个字段:协议版本字段、状态码和相应状态信息
-
后续行:首部行
-
最后部分行:实体体
2.2.4用户与服务器的交互:cookie
cookie技术的四个组件:
-
HTTP响应报文中带有一个cookie首部行
-
HTTP请求报文中带有一个cookie首部行
-
用户端系统中保留一个cookie文件
-
Web站点的一个后端服务器
2.2.5Web缓存
Web缓存器又叫代理服务器,是能够代表初始Web服务器来满足HTTP请求的网络实体
过程如下:
-
浏览器建立一个到Web缓存器的TCP连接,并向Web缓存器中的对象发送一个HTTP请求
-
Web缓存器进行检查,看看本地是否存储了该对象的副本,如果有则用响应报文返回对象
-
如果没有,则打开一个与该对象的初始服务器的TCP连接,向其发送一个对该对象的HTTP请求。初始服务器向其发送响应报文
-
Web缓存器在本地保留一份副本,并向用户发送响应报文
好处
1.大大减少对用户请求的响应时间
2.整体上大大减轻因特网上的Web流量,改善应用性能
2.2.6条件GET方法
为了保证高速缓存器中的内容不是陈旧的,HTTP协议设置了一种机制,条件GET方法
如果:
-
请求报文中使用了GET方法
-
请求报文中包含了一个If-Modified-Since首部行
则称为条件GET请求报文
过程
-
缓存器向初始服务器发送请求报文
-
初始服务器返回响应报文
-
缓存器存储对象和时间
-
浏览器向缓存器发送请求报文
-
缓存器向初始服务器发送含有条件GET方法的请求报文
-
初始服务器返回不含对象的响应报文(告知未被修改)
-
缓存器返回缓存对象的响应报文