HTTP 实用指南 | 青训营笔记

90 阅读2分钟

HTTP 实用指南 | 青训营笔记

这是我参与「第四届青训营 」笔记创作活动的的第6天

初识HTTP-什么是HTTP
  • Hyper Text Transfer Protocol 超文本传输协议
  • 应用层协议,基于TCP协议
  • 请求 响应
  • 简单可扩展
  • 无状态
协议分析-报文

状态码

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

Restful API

RESTful API:一种API设计风格;REST-Representional State Transfer

  1. 每一个URL代表一种资源;
  2. 客户端和服务器之间,传递这种资源的某种表现层;
  3. 客户端通过HTTP method,对服务端资源进行操作,实现表现层状态转化
协议分析-发展

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

  • 帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
  • 二进制
  • 消息:与逻辑请求或响应消息对应的完整的一系列帧
  • 数据流:已建立的连接内的双向字节流,可以承载一条或多条信息
  • 交错发送,接收方重组织
  • HTTP/2连接都是永久的,而且仅需要每个来源一个连接
  • 流控制:阻止发送方向接收方发送大量数据的机制

HTTPS概述

  • HTTPS:Hypertext transfer Protocol Secure
  • 经过TSL/SSL加密
  • 对称加密:加密和解密都是使用同一个密钥
  • 非对称加密:加密和解密需要使用两个不同的密钥,公钥(public key)和私钥(private key)

跨域解决方案

  • CORS
  • 代理服务器
    • 同源策略是浏览器的安全策略,不是HTTP的
  • Iframe
    • 诸多不便

**AJAX之Fetch **

  • XMLHttpRequest的升级版
  • 使用Promise
  • 模块化设计,Response,Request,Header对象
  • 通过数据流处理对象,支持分块读取

常用的请求库:axios

  • 支持浏览器、nodejs环境
  • 丰富的拦截器

WebSocket 浏览器与服务器进行数全双工通讯的网络技术 典型场景:实时性要求高,例如聊天室 URL使用ws://或wss://等开头