Web应用与HTTP协议笔记
一、Web应用基础
1. Web对象与URL
- 对象:互联网中的网页、图片等资源均可视为对象。
- URL(统一资源定位符) :用于唯一标识并访问互联网中的对象。
- 格式:
协议://用户名:密码@主机名:端口号/路径名?查询参数#片段标识符
- 示例:
http://www.ustc.edu.cn/
- 格式:
2. Web页面结构
- base HTML文件:定义网页的基本框架。
- **链接(Links)**:网页中嵌入的对象链接,通过URL指向其他资源。
- 浏览器解析:浏览器下载base HTML文件后,解析并展示网页内容,同时根据链接加载其他资源(如图片)。
二、HTTP协议详解
1. HTTP协议概述
- 超文本传输协议:支持Web应用的核心协议。
- 客户端与服务器:浏览器作为客户端,Web服务器提供资源。
- 版本:HTTP/1.0、HTTP/1.1等,主要区别在于连接管理和性能优化。
2. 连接管理
- 非持久连接(HTTP/1.0) :每个请求/响应对建立一个新连接,完成后立即关闭。
- 持久连接(HTTP/1.1) :连接建立后保持打开状态,可复用于多个请求/响应对,提高效率。
- **流水线(Pipelining)**:在持久连接上连续发送多个请求,无需等待响应即可发送下一个请求。
3. 报文格式
- 请求报文 :
- 命令行 :
方法 URL HTTP版本
(如GET / HTTP/1.1
) - 头部字段 :键值对形式,提供请求元数据(如
Host
、User-Agent
) - 实体体(可选):POST请求时包含的数据体
- 命令行 :
- 响应报文 :
- 状态行 :
HTTP版本 状态码 状态消息
(如HTTP/1.1 200 OK
) - 头部字段 :键值对形式,提供响应元数据(如
Server
、Last-Modified
、Content-Length
) - 实体体:请求的资源内容
- 状态行 :
4. 请求方法
- GET:请求资源,可带查询参数。
- POST:提交数据给服务器,常用于表单提交。
- HEAD:与GET类似,但仅返回响应头部,不返回实体体。
- PUT 、DELETE:分别用于上传和删除资源,常用于WebDAV和RESTful API。
三、HTTP无状态特性与Cooki
e
1. 无状态协议
- 定义:服务器不维护客户端的状态,每次请求独立处理。
- 优点:简单、高效,支持高并发。
- 缺点:无法处理需要状态的应用(如购物车)。
2. Cookie机制
- 定义 :服务器在响应报文中通过
Set-Cookie
头部字段设置Cookie,客户端在后续请求中通过Cookie
头部字段携带Cookie。 - 作用:实现客户端状态跟踪,支持个性化设置、购物车等功能。
- 隐私问题:Cookie可能泄露用户隐私,需谨慎使用。
四、Web缓存
1. 缓存机制
- 定义:在客户端或代理服务器中存储已访问过的资源副本,以减少对原始服务器的访问次数。
- 优点:提高响应速度、减轻服务器和网络负担。
- 缺点:可能导致资源不一致性问题(如缓存未及时更新)。
2. 条件式获取(Conditional GET)
- 定义 :客户端在请求时通过
If-Modified-Since
或If-None-Match
头部字段告知服务器资源最后修改时间或ETag。 - 作用:服务器根据条件判断资源是否更新,如未更新则返回304 Not Modified状态码,客户端使用缓存副本。
- 优点:解决缓存不一致性问题,减少数据传输量。