第四章第四节 万维网应用

379 阅读6分钟

web应用主要包括Web服务器、浏览器与超文本传输协议(HTTP)等部分

Web应用是典型的客户/服务器网络应用,客户与服务器之间的交互基于应用层协议HTTP。浏览器向Web服务器发动Http请求,服务器向浏览器返回Http响应报文,其中包含客户所要的Web页,浏览器对其中的Web页进行解析并显示。

在web应用中,通过一个URL(Universal Resource Locator)地址来寻址一个Web页或Web对象,每个URL地址主要分两部分组成:存放主机对象的服务器主机域名对象的路径名

HTTP是web应用的应用层协议。目前主要使用的是HTTP1.0和HTTP1.1。

HTTP0.9只支持GET方法,没有定义任何首部,不支持多媒体内容的MIME类型和协议版本号。

HTTP1.0是第一个得到广泛应用的HTTP版本。HTTP1.0增加了协议版本号,各种首部行、额外的方法以及对多媒体对象的支持。但是HTTP1.0的规范定义做的不好,在20世纪90年代中期,很多流行的Web客户端和服务器都在向HTTP中添加新特性,以满足不同需求。其中很多特性,比如持久的keep-alive连接、虚拟主机支持以及代理连接支持等。都被增加到HTTP中,并成为非官方的事实标准。这中非正式的HTTP扩展的版本通常被称为HTTP1.0+。HTTP1.1与HTTP1.0相比,支持更多的请求方法、扩展了一些首部、增加了响应状态码、改进了对缓存的支持等。HTTP1.1的重点是矫正了HTTP设计中的结构缺陷,明确了语义,引入了重要的性能优化措施,并删除一些不良特性。

最新版的HTTP是HTTP2.0,最典型的就是SPDY(更快)是Google开发的基于TCP的应用层协议。SPDY协议的目标是优化HTTP的性能,通过压缩、多路复用和优先级等技术,缩短网页的加载时间并提高安全想。SPDY的核心思想是尽量减少TCP连接数。

HTTP连接基于传输的TCP传输报文。浏览器在向服务器发送请求之前,首先需要建立TCP连接,然后才能发送HTTP请求报文。并接收HTTP响应报文。根据HTTP在使用TCP连接的策略不同,可以分为持久连接的HTTP和非持久连接的HTTP。非持久连接是指HTTP客户与HTTP服务器建立TCP连接后,通过该连接发送HTTP请求报文,接收HTTP响应报文。然后断开服务。显然非持久连接的特点就是慢。典型的优化技术包括两个并行连接持久连接。并行连接,通过建立多条并行的TCP连接,并行发送HTTP请求和并行接收响应。持久连接,重用已建立的TCP连接发送新的HTTP请求和接收HTTP响应,从而消除新建TCP连接的时间开销。持久连接又分为非流水方式持久连接流水方式持久连接非流水方式持久连接是指客户端在通过持久连接收到前一个响应报文后。才能发出对下一个对象的请求报文。流水方式持久连接。客户端在通过持久对象连接收到前一个对象的响应报文之前,连续一次发送对后续对象的请求报文,然后再通过该链接一次接收服务器发回的响应报文。HTTP1.1默认情况下使用流水方式持久连接

HTTP报文由4部分组成:起始行(start line)、首部行(Header lines)、空白行(blank)、报文主体(entity body) 报文分为两类 请求报文响应报文。请求报文浏览器发送给服务器,响应报文服务器发送给浏览器。

请求报文的结构 :请求行包含方法、rul、协议版本。首部行包含首部行字段名和值。空白行就是一个空行。报文主体存放主体信息。响应报文的结构:状态行包含协议版本、状态码、短语。首部行也是首部行字段名和值。空白行和报文主体。请求报文与响应报文最主要的区别是起始行不同。请求报文起始行为<方法><url><协议版本>。响应报文起始行为<协议版本><状态码><短语>

HTTP典型的请求方法有

  1. GET:请求读取由URL所标识的信息
  2. HEAD:请求读取由URL所标识的信息,是最常见的方法
  3. POST:给服务器添加信息
  4. OPTION:请求一些选项的信息
  5. PUT:在指明的URL下存储一个文档

状态码的分类

  • 100-199 作用信息提示,通告信息,可能还需要进一步交互
  • 200-299 作用提示成功,成功完成客户请求的操作,并进行响应
  • 300-399 作用重定向,表示资源已移走,需要向新URL发请求
  • 400-499 作用客户端错误,由于客户端请求错误,无法成功响应
  • 500-599 服务器端错误,由于服务器端错误,无法成功响应
常件的HTTP状态码
  • 100    表示已成功收到了请求的初始部分,请客户端继续
  • 200    成功,所请求信息在响应报文中
  • 301    重定向
  • 400     客户端请求错误,服务器不能正确理解客户请求
  • 401    未授权 需要输入用户名和密码
  • 404    客户端请求的对象,在服务器上不存在
  • 451    不支持的媒体类型
  • 505    请求使用的HTTP版本,服务器不支持
由于客户端是无状态的,所以引入了cookie这项技术,辨别用户身份,进行会话跟踪存储而存储在用户本地终端上的数据。

cookie分为永久cookie和会话cookie,永久cookie存储在硬盘中,会话cookie存储在内存中,只要浏览器关闭,就会消失。

cookie最常件的用途有

  1. 网站可以利用cookie的ID来准确统计网站的实际访问人数、访问者和重复访问者的人数对比、访问者的访问频率等数据
  2. 网站可以利用cookie限制某些特定的用户的访问
  3. 网站可以存储用户访问过程中的操作习惯和偏好,对不同的用户呈现不同的显示内容、颜色、布局等界面元素,有针对性的为用户提供服务,提升用户体验感
  4. 记录用户登陆网站使用的用户名、密码等信息。
  5. 电子商务网站可以利用cookie实现购物车的功能。