• 【面筋烧烤手册】HTTP请求专题


    HTTP请求专题

    1、状态码

    1XX 已被接受等待处理

    2XX 成功

    • 200 请求成功
    • 204 请求成功无资源(OPTIONS的返回状态码)
    • 206 partial content 范围请求 部分

    3XX 重定向

    • 301 永久性重定向 已被分配新URL(首部会有提示)
    • 302 临时分配新URL 要改POST为GET
    • 303 存在另一个资源
    • 304 请访问协商缓存
    • 307 临时重定向 不改POST

    301 302 303 POST改成GET

    4XX 客户端错误

    • 400 报文语法错误
    • 401 HTTP请求没通过认证
    • 403 forbidden 被服务器拒绝
    • 404 无资源
    • 405 禁止使用此方法,设置请求头OPTIONS看支持什么方法
    var Access-Control-Allow-Method = xhr.getResponseHeader('Access-Control-Allow-Method')
    var Access-Control-Allow-Origin = xhr.getResponseHeader('Access-Control-Allow-Origin')
    

    5XX 服务器错误

    • 500 执行请求出错
    • 502 服务器自身正常 但就是访问有问题
    • 503 暂时停机(可能超负载)无法处理请求

    2、HTTP缓存

    之前我们说到304的协商缓存,现在继续看看缓存的要点

    强缓存

    • HTTP 1.0 Expires 过期时间点
    • HTTP 1.1 Cache-control 过期时长计时

    协商缓存 (传tag和服务器协商)

    • last-modified 最后修改时间
      头部添加if- Modified- since字段

    • ETag 文档标识 是否有改动
      头部添加if- modified- match字段

    • 比较:

      • 性能:last modified 只用比时间(秒),因为秒所以小于秒的无法判断
      • 精度:ETag MD5生成Hash值
    • 不能缓存的原因:
      磁盘已满 页面不同源

    • 能缓存的条件:

      • GET HEAD
      • POST PUT 流式上传:基于HTTP2.0的帧和流 分块(成帧)传输时要缓存
      • 能使缓存失效的DELETE和PATCH

    3.请求方法区别

    GET和POST

    1. 缓存:
      GET主动缓存,POST默认不能
    2. 参数:
      GET参数直接在URL里,POS T在请求体里
    3. 编码:
      GET只能ASCII,POST支持更多
    4. 幂等:
      GET一次性发送请求,POST分header(状态码100)再发body ,收发多个
    5. 应用场景:
      GET 搜索关键字(页面传参 幂等发一个收一个)
      POST 注册(不幂等 发多个收一个)

    OPTIONS和HEAD

    • HEAD
      几乎和GET一样,只请求头部,可得到资源信息,用于测试链接有效性可不可以访问,可以返回100,类似于POST每次先发个Header看看是不是100
    • OPTIONS
      查看服务器性能,支持的HTTP请求方法,是否能跨域
      在建立连接的第一步xhr.getResponseHeader('Access-Control-Allow-Method和Origin')
  • 相关阅读:
    Docker和K8S
    CoBot 库博源代码缺陷检测工具
    Hobot软件成分分析平台
    Black duck(黑鸭子软件)开源代码审计管理测试平台
    python之理解super及MRO列表
    Python中MRO排序原理
    python中with的用法
    使用微服务架构重构支付网关
    支付网关的设计原则
    python内存管理--垃圾回收
  • 原文地址:https://www.cnblogs.com/SiriusZHT/p/14365043.html
Copyright © 2020-2023  润新知