HTTP
作者:互联网
HTTP(1991-0.9 1996-1.0 1999-1.1 2015-2.0)
1、超 文本 传输协议 | 2、处理客户端和服务端之间的通信 | 3、http请求/返回 | 4、网页 / json / xml / 提交表单 / ··· |
纯文本 + 无状态
1、应用层协议
|
2、信息纯文本传输
|
3、无状态 - 每次请求独立 - 请求间互不影响 |
4、浏览器提供了手段维护状态(Cookie,Session,* Storage等)
|
设计的考虑因素
基础因素 | · 带宽 | - 基础网络(线路、设备等) |
· 延迟 |
- 浏览器 - DNS - 建立连接(TCP三次握手) |
|
缓存与带宽优化 | · 缓存 |
- (http1.0)提供缓存机制,如IF-Modified-Since等基础缓存控制策略 - (http1.1)提供E-Tag等高级缓存策略 |
· 带宽优化 |
- (http1.1)利用range头获取文件的某个部分 - (http1.1)利用长连接让多个请求在一个TCP连接上排队 - (http2.0)利用多路复用技术同时传输多个请求 |
|
压缩/安全性 | · 压缩 |
- 主流web服务器如nginx/express等都提供gzip压缩功能 - (http2.0)采用二进制传输,头部使用HPACK算法压缩 |
HTTPS |
- 在HTTP和TCP/IP之间增加TSL/SSL层 - 数据传输加密(非对称+对称加密) |
HTTPS
1、安全超文本传输协议
|
2、数据加密传输: - 防止各种攻击手段(信息泄露、篡改等) |
3、SSL / TSL(二选一,TSL更安全) - SSL- 安全套接层 - TSL- 传输层安全性协议 - 需要在客户端安装证书 |
Header 和 Body(图一没有response,说明http协议是个非常简单的文本协议,浏览器没有读到http协议,图二是http返回)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
fetch
- 在网络上获取数据的标准接口
- 提供对请求/返回对象(标准Promise接口) | - 提供自定义Header能力 | - 提供跨域能力 |
Whistle
- 跨平台网络调试工具
- 需要SwitchOmega插件 | - node.js 开发 | - 支持抓包、重放、替换、修改等 |
补充:
1、前端最重要的两个指标: - 跳出率 - 可交互时间(TTI)
2、工具 curl
标签:协议,TSL,缓存,http,请求,传输,HTTP 来源: https://www.cnblogs.com/slightFly/p/14197183.html