一. Web应用
1.万维网的简述
万维网(World Wide Web -> www or Web):大规模的,联机式的信息储藏所,万维网用链接的方式能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
万维网是一个分布式的超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。所谓超文本是指包含指向其他文档的链接的文本(text)。超文本是万维网的基础。
万维网以C/S结构(客户/服务器结构) 工作:
- 客户----Browser:请求,接收,展示Web对象
- 服务器----Web Server:响应客户的请求,发送对象
在一个客户程序主窗口上显示出的万维网文档称为页面(Page) ,包含多个多个对象(Objects):
- 对象:HTML文件,JPEG文件,视频文件,动态脚本等
- 基本HTML文件:包含对其他对象引用的链接
2.对象的寻址----统一资源定位符URL
a. URL的简述
统一资源定位符URL 实际上是互联网上资源的地址。只有知道了这个资源在互联网上的什么地方,才能对它进行操作。显然互联网上所有的资源都有且仅有唯一确定的URL。
b. URL的格式
URL一般形式由以下四部分组成:
<协议>://<主机>:<端口>/<路径>
例如:
https://www.haut.edu.cn/xxgk/xxjj.htm
- URL最左边的<协议>就是指出用什么协议来获取万维网文档。目前最常用的是http,其次是ftp(文件传输协议)
- <协议>后面的": //"是规定的格式,它的右边是第二部分<主机>,一般是指该主机在互联网上的域名,如例子里的www.haut.edu.cn。
- 后面的端口和路径有时会省略。如HTTP的默认端口是80,但一般可省略。
- 上面给出的URL例子使用了指向文件的路径,而文件名就是最后的xxjj.html,后缀html表示这是一个超文本标记语言HTML写的文件
3. 遵循的协议----超文本传送协议HTTP
a. HTTP的简述
使用面向连接的TCP 作为运输层协议,通过三次握手建立连接:
- 服务器在80端口等待客户的请求
- 浏览器发起到服务器的TCP连接(创建套接字Socket)
- 服务器接收来自浏览器的TCP连接
- 浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息
- 关闭TCP连接
HTTP协议是无状态的(Stateless):服务器不维护任何有关客户端之前所发请求的消息。
b. HTTP的两种连接类型
非持久性连接(Nonpersistent HTTP)
- 每个TCP连接最多允许传输一个对象
- HTTP1.0版本使用非持久性连接
持久性连接(Persistent HTTP)
- 每个TCP连接允许传输多个对象
- HTTP1.1版本默认使用持久性连接
- HTTP1.1协议的持久性连接分为两种:非流水线方式(without pipelining)和流水线方式(with pipelining)
c. HTTP的报文结构
HTTP有两类报文:
(1)请求报文——从客户向服务器发送请求报文
(2)响应报文——从服务器到客户的回答
HTTP的请求报文和响应报文的格式仅开始行不同。请求报文的请求行只有三个内容,即方法,请求资源的URL, HTTP版本:
GET http://www.haut.edu.cn/dir/index.html HTTP/1.1
再看看HTTP响应报文的开始行,也包括三个部分,即HTTP版本,状态码, 解释状态码的简单短语:
HTTP/1.1 404 Not Found
HTTP/1.1 202 Accepted
HTTP/1.1 400 Bad Request
一些常见的状态码分为五类:
1xx 表示通知消息,如请求收到了或正在处理。
2xx表示成功,如接受或知道了。
3xx表示重定向,如要完成请求还必须采取进一步的行动。
4xx表示客户端的差错,如请求中有错误的语法或不能完成。
5xx表示服务器的差错,如服务器失效或无法完成请求。
4. Cookie技术
无状态的HTTP协议尽管简化了服务器的设计,但实际生活中,一些万维网站点却希望能识别用户,如网上购物。这个时候就需要使用cookie来跟踪用户。
cookie是这样工作的。当用户ebay: 8734浏览Amazon(使用cookie的网站)时,Amazon的服务器就为该用户产生一个唯一的识别码,并以此作为索引在服务器的后端数据库产生一个项目。接着在给用户ebay:8734的HTTP响应报文中添加一个叫做Set-cookie的首部行。这里“首部字段名”就是“Set-cookie”,而后面的“值”就是赋予该用户的“识别码”---- Set-cookie: 1678
当用户收到这个响应时,其浏览器就在它管理得cookie文件中添加一行,其中包括服务器的主机名和Set-cookie后面的识别码----cookie: 1678 。当下次用户浏览Amazon时,每发送一个HTTP请求报文,其浏览器就会从其cookie文件里取出Amazon的识别码,并放到HTTP请求报文的cookie首部行中。
有图有真相:
5. web缓存/代理服务器技术
- 用户设定浏览器通过缓存/代理服务器进行web访问
- 浏览器向缓存/代理服务器发送所有HTTP请求
- 如果所请求对象在缓存中,缓存返回对象
- 否则,缓存服务器向原始服务器发送HTTP请求,获取对象,然后返回给客户端并保存该对象
- 缓存/代理服务器既充当客户端,又充当服务器
- 一般由ISP(Internet服务提供商)架设
有图有真相: