HTTP实用指南 | 青训营

88 阅读3分钟

初识HTTP协议

01.初识-什么是HTTP ,其基本特点

什么是HTTP · Hyper Text Transfer Protocol 超文本传输协议 · 应用层协议、基于TCP协议 · 请求 响应 · 简单可拓展 · 无状态

HTTO/0.9 单行协议 -> HTTP/1.0 构建可拓展性 -> HTTP/1.1标准化协议 -> HTTP/2 更优异的表现 -> HTTP/3 草案

02.协议分析-报文结构,发展历程

协议分析-报文

Method

Safe(安全的): 不会修改服务器的数据的方法 例如:GET HEAD OPTIONS

Idempotent(幂等): 同意的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的 所有safe的方法都是Idempotent的 例如GET HEAD OPTIONS PUT DELETE

状态码

· 200 OK - 客户端请求成功 · 301 - 资源被永久转移到其他URL · 302 - 临时跳转 · 401 Unauthorized - 请求未经授权 · 404 - 请求资源不存在,可能是输入了错误的URL · 500 - 服务器内部发生了不可预期的错误 · 504 Gateway Timeout - 网关或者代理的服务器无法在规定时间内获得想要的响应

RESful API

一种API设计风格;REST - Representational State Transfer 1.每一个URI代表一种资源 2.客户端和服务器之间,传递这种资源的某种表现层 3.客户端通过HTTP Method,对服务器端资源进行操作,实现“表现层状态转化”

缓存

强缓存 - 如果缓存本地已存在,则直接调用本地缓存

协商缓存 - 如果缓存本地已存在,但是无法判断是否可用,状态是否是最新的,需要跟Server端通信去验证一下

HTTP/2概述:更快、更稳定、更简单

· HTTP/2连接都是永久的,而且仅需要每个来源一个连接 · 流控制:阻止发送方向接收方发送大量数据的机制 · 服务器推送

HTTPS概述

· HTTPS:Hypertext Transfer Protocol Secure · 经过TSL/SSL加密

03.常见场景-静态资源、登录

静态资源方案:缓存 + CDN + 文件名hash

· CDN:Content Delivery Network

· 通过用户就近性和服务器负载的判断,CDN确保内容以一种即为高效的方式为用户的请求提供服务

业务场景

· 表单登录 · 扫码登录

技术方式

· SSO

跨域解决方案

· CORS

· 代理服务器

· Iframe

04.实际应用-浏览器与node中使用

浏览器篇

AJAX之XHR

· XHR:XMLHttpRequest

· readyState

AJAX之Fetch

· XMLHttpRequest的升级版

· 使用Promise

· 模块化设计,Response,Request,Header对象

· 通过数据流处理对象,支持分块读取

标准库:HTTP/HTTPS

· 默认模块,无需安装其他依赖

· 功能有限/不是十分友好

常用的请求库:axios

· 支持浏览器、nodejs环境

· 丰富的拦截器

05.了解更多-不止HTTP协议一个选择

扩展-通信方式

WebSocket

· 浏览器与服务器进行全双工通讯的网络技术

· 典型场景:实时性要求高,例如聊天室

· URL使用WS://或者wss://等开头

QUIC:Quick UDP Internet Connection

· 类似TCP的可靠传输

· 类似TLS的加密传输,支持完美前向安全

· 用户空间的拥塞控制,最新的BBR算法

· 前向纠错FEC

总结

通过今天的课程,了解了HTTP的发展历程、HTTP协议的分析、常用的场景以及实际应用。对HTTP的概念有了进一步的认识。