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

  

 

posted @ 2020-12-27 14:28  SlightFly  阅读(104)  评论(0编辑  收藏  举报