HTTP使用指南 | 青训营笔记

48 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天

HTTP实用指南

初识HTTP

什么是HTTP?

  • Hyper Text Transfer Protocol
  • 应用层协议,基础TCP协议
  • 请求响应
  • 简单可扩展
  • 无状态

协议分析

报文

Method

  • GET: 请求一个指定资源的表示形式,只被用于获取数据
  • POST: 用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用
  • PUT: 用请求有效载荷替换目标资源的所有当前表示
  • DELETE: 删除指定的资源
  • HEAD: 请求一个与GET请求的响应相同的响应,但没有响应体
  • PATCH: 用于对资源应用部分修改

状态码

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

500和504是服务器端出现错误

常用请求头

  • Accept: 表示浏览器支持的MIME类型
  • Content-Type: 客户端发送出去实体内容的类型
  • Cache-Control: 指定请求和响应遵循的缓存机制
  • User-Agent: 用户客户端的一些必要信息,如UA头部

缓存

强缓存
  • Expires: 时间戳
  • Cache-Control
协商缓存
  • Etag: 资源的特定版本的标识符
  • Last-Modified: 最后修改时间

HTTPS

经过TSL/SSL加密

  • 对称加密
  • 非对称加密

场景分析

静态资源

状态码200,一定发送了请求吗?

不一定

缓存策略

  • 强缓存
  • Cache-Control:一年

静态资源方案

缓存+CDN+文件名hash

登录

表单登录

Request Method: POST (提交一些信息)

从Request Headers中的Content-Type可得提交的信息为form(表单)

跨域

跨域解决方案
  • CORS
  • 代理服务器
  • Iframe

实战

浏览器篇

AJAX之XHR

AJAX之Fetch

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