HTTP
- URI 和 URL的关系:URI包括了URL。
- html/login.html,这是个URI,它 不能在网唯一标识。
- http://localhost:8080/hello/html/login.html 这个URI 可以在全网唯一标识,称为 URL。
- HTTP(Hyper Text Transfer Protocol),超文本传输协议
- 是互联网中应用最广泛的应用层协议之一
- 设计HTTP最初的目的是:提供一种发布和接收HTML页面的方法,由URI来标识具体的资源
- 后面用HTTP来传递的数据格式不仅仅是HTML,应用非常广泛
- HTML(Hyper Text Markup Language) 超文本标记语言 用以编写网页
HTTP版本
- 1991年,HTTP/0.9
- 只支持GET请求方法获取文本数据(比如HTML文档),且不支持请求头、响应头等,无法向服务器传递太多信息
- 1996年,HTTP/1.0
- 支持POST、HEAD等请求方法,支持请求头、响应头等,支持更多种数据类型(不再局限于文本数据)
- 浏览器的每次请求都需要与服务器建立一个TCP连接,请求处理完成后立即断开TCP连接
- 1997年,HTTP/1.1(最经典、使用最广泛的版本)
- 支持PUT、DELETE等请求方法
- 采用 持久连接(Connection: keep-alive),多个请求可以共用同一个TCP连接
- 2015年,HTTP/2.0
- 2018年,HTTP/3.0
HTTP的标准
- 由万维网协会(W3C)、互联网工程任务组(IETF)协调制定,最终发布了一系列的RFC
- RFC(Request For Comments,可以译为:请求意见稿)
- HTTP/1.1最早是在1997年的 RFC 2068 中记录的
该规范在1999年的 RFC 2616 中已作废
2014年又由 RFC 7230 系列的RFC取代 - HTTP/2标准于2015年5月以 RFC 7540 正式发表,取代HTTP/1.1成为HTTP的实现标准
HTTP报文格式(简)
HTTP报文格式.png请求方法
- GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE
- GET 常用于读取的操作,请求参数直接拼接在URL的后面(浏览器对URL是有长度限制的)
- POST 常用于添加、修改、删除的操作,请求参数可以放到请求体中(没有大小限制)
-
HEAD 请求得到与GET请求相同的响应,但没有响应体
使用场景:在下载一个大文件前,先获取其大小(HEAD),再决定是否要下载(GET)。以此可以节约带宽资源 - OPTIONS 用于获取目的资源所支持的通信选项,比如 服务器支持的请求方法
- PUT 用于对已存在的资源进行整体覆盖
- PATCH 用于对资源进行部分修改(资源不存在,会创建新的资源)
- DELETE 用于删除指定的资源
- TRACE 请求服务器回显其收到的请求信息,主要用于HTTP请求的测试或诊断
- CONNECT 可以开启一个客户端与所请求资源之间的双向沟通的通道,它可以用来创建隧道(tunnel)
请求头字段
1.png 2.png-
注意:q 值越大,表示优先级越高,如果不指定q值,默认是1.0(1.0是最大值)
3.png
响应头字段
4.png 5.png 6.png代理服务器
- 本身不生产内容
- 处于中间位置转发上下游的请求和响应
面向下游的客户端:它是服务器
面向上游的服务器:它是客户端
正向代理、反向代理
- 正向代理:代理的对象是 客户端
-
反向代理:代理的对象是 服务器
正向代理与反向代理.png
正向代理的作用
- 隐藏客户端身份
- 绕过防火墙(突破访问限制)
- Internet访问控制
- 数据过滤
-
…
正向代理.png
反向代理的作用
- 隐藏服务器身份
- 安全防护
-
负载均衡
反向代理.png
CDN (内容分发网络)
-
利用最靠近每位用户的服务器
-
更快更可靠地将音乐、图片、视频等资源文件(一般是静态资源)传递给用户
CDN.png -
CDN运营商在全国、乃至全球的各个大枢纽城市都建立了机房
-
部署了大量拥有高存储高带宽的节点,构建了一个跨运营商、跨地域的专用网络
-
内容所有者向CDN运营商支付费用,CDN将其内容交付给最终用户
CDN1.png -
CDN使用前
CDN使用前.png -
CDN使用后
CDN使用后.png
网友评论