Web应用和HTTP协议
一.www概述
1.www体系结构与协议
(1)WWW:World Wide Web,万维网。
(2)HTTP服务器和客户端,以及它们之间执行的HTTP协议。
(3)服务器
①Web页面(HTML文档):包含到多种对象或链接。
②Web对象(包括:静态对象和动态对象):可以是HTML文档、图像文件、视频文件、声音文件、脚本文件等。
③对象用URL(统一资源定位符)编址:协议类型://主机名:端口//路径和文件名。
(4)客户端
①发出请求、接收响应、解释HTML文档并显示。
②有些对象需要浏览器安装插件。
2.统一资源定位器URLs(Uniform Resource Locators)
3.www性能提升方法
(1)前端(front end)
(2)多线程(multiple threads)
(3)缓存(caching),如代理技术
二.Web对象
1.Web对象分类
(1)静态对象与静态网页
①文本,表格,图片,图像和视频等多媒体类型的信息(实现语言:标记语言,如:HTML、XML、PHP等)。
②字体、颜色和布局等风格类型的信息(实现语言:层叠样式表CSS)。
(2)动态对象与动态网页
①交互信息,比如,用户注册信息、登录信息等(实现:PHP/JSP等语言+MySQL等数据库)。
(3)链接
①超链接(HyperLinks)。
2.动态Web
(1)为什么需要动态Web
①交互性:根据用户的要求和选择而动态地改变和响应。
②自动更新:无须手动更新HTML文档,便会自动生成新页面。
③因时因人而异:不同时间、不同用户访问同一网址时会出现不同页面。
(2)动态Web页面实现
①通用网关接口CGI(*.sgi)。
②脚本语言+数据库技术(*.php,*.sap,*.aspx)。
三.HTTP协议
1.HTTP概述
(1)超文本传输协议HTTP(HyperText Transfer Protocol)在传输层通常使用TCP协议,缺省使用TCP的80端口。
(2)HTTP为无状态协议,服务器端不保留之前请求的状态信息。
①无状态协议:效率低、但简单。
②有状态协议:维护状态相对复杂,需要维护历史信息,在客户端或服务器出现故障时,需要保持状态的一致性等。
2.HTTP发展现状
(1)HTTP/1.0(1996)
①无状态,非持久连接。
(2)HTTP/1.1(1999)
①支持长连接和流水线机制;
②缓存策略优化、部分资源请求及断点续传。
(3)HTTPS:HTTP+TLS(2008)
①增加SSL/TLS层,在TCP之上提供安全机制。
(4)HTTP/2.0(2015、2020)
①目标:提高带宽利用率、降低延迟;
②增加二进制格式、TCP多路复用、头压缩、服务端推送等功能。
3.HTTP协议运行过程
(1)HTTP协议运行在客户与服务器端的应用程序中。
①客户机:请求、接收、“显示”Web对象。
②服务器:Web服务器响应请求而发送对象。
(2)通过交换HTTP消息进行交流。
(3)使用TCP
①客户机向服务器发起TCP连接(产生套接字),端口80;
②服务器从客户机接受TCP连接;
③在浏览器(HTTP客户机)和Web服务器(HTTP服务器)之间交换HTTP报文(应用层协议报文);
④关闭TCP连接。
(4)HTTP是无状态的
①服务器不保留有关客户机过去请求的任何信息;
②用户的状态信息由Cookies来实现。
4.非持久连接和持久连接
(1)非持久连接
①HTTP/1.0缺省为非持久连接
服务器接收请求、响应、关闭TCP连接。
②获取每个对象需要两个阶段
a.建立TCP连接;
b.对象请求和传输。
③每次连接需要经历TCP慢启动阶段。
(2)持久连接
①HTTP/1.1缺省为持久连接
在相同的TCP连接上,服务器接收请求、响应;再接收请求、响应;响应后保持连接。
②HTTP/1.1支持流水线机制
需要按序响应。
③经历较少的慢启动过程,减少往返时间,降低响应时间。
5.响应时间估算
(1)往返时间RRT的定义:从客户机到服务器发送一个小分组并返回所经历的时间。
(2)响应时间(1个HTML文件):
①建立TCP连接:1个RRT;
②对HTTP请求和响应返回的前几个字节:1个RRT;
③文件传输时间
④总响应时间=2RRT+传输时间。
6.HTTP报文结构:请求报文
(1)报文由三个部分组成,即开始行、首部行和实体主体。
(2)在请求报文中,开始行就是请求行。
(3)请求报文举例
7.HTTP报文结构:响应报文
(1)状态码
①状态码都是三位数字
②典型状态码
(2)响应报文举例
四.Cookie技术
1.用户与服务器的交互
(1)HTTP是一种无状态协议,不能保存客户信息。
(2)Cookie是一种在客户端保持HTTP状态信息的技术。
①客户端访问网站时,Web服务器会查看、创建、修改Cookie资料;
②帮助Web站点保存访问者信息:浏览历史、购物车等。
(3)cookie技术组成
①cookie识别码(http请求报文、http响应报文);
②客户端保留cookie文件;
③服务器提供后端数据库。
(4)cookie工作过程举例
2.Cookie的优缺点
(1)好处:能分析用户喜好,向用户进行个性化推荐。
①用Cookie在某网站标识用户信息,查找用户以前浏览网站记录;
②用Cookie记录用户购物清单;
③用Cookie可以保存4K内容,跟踪用户浏览网站的喜好;
④用Cookie跨站点跟踪用户点击广告。
(2)缺点:跟踪用户网络浏览痕迹,泄露用户隐私。
①Cookie跟踪用户以前浏览过哪些网站,跟踪用户频繁浏览哪类网站;
②Cookie收集用户信息,用户网络交互时关注的关键词。
(3)Cookie容易嵌入间谍程序,这是个误区,Cookie文件保存的只是文本串,没有可执行程序。
用户可以设置浏览器限制使用Cookie。
五.Web缓存技术与Web代理
1.Web缓存(代理服务器)
(1)Web缓存:保存最近请求过的web对象。
(2)浏览器向缓存发送所有HTTP请求。
①对象在缓存中:缓存返回对象;
②否则缓存向起始服务器请求对象,然后向客户机返回对象。
(3)好处
①减小客户机请求的响应时间;
②减少机构内部网与因特网接入链路的通信量。
2.Web缓存一致性
(1)Web缓存存在困难,即Web缓存与原始服务器Web页一致性问题。
①启发式策略:服务器响应Web页的Last-Modified头和Expires头启发-原始Web页一段时间是否有更改;缓存是否在有效期内。
②询问式策略:通过特殊的关键字头询问原始服务器,Web副本是否已更新。
3.条件GET方法
(1)目的:如果缓存中有最新缓存版本,就不发送该对象。(解决问题:缓存中的对象可能不是最新)。
(2)缓存器:在HTTP请求If-modified-since:< date >中,指定缓存版本的日期。
(3)服务器:如果缓存的拷贝是最新,响应不包含对象:HTTP/1.0 304 Not Modified