HTTP 协议原理

在这里插入图片描述

网络协议分层

在这里插入图片描述

物理层主要作用是定义物理设备如何传输数据
数据链路层在通信的实体间建立数据链路连接
网络层为数据在结点之间传输创建逻辑链路
传输层向用户提供可靠的端到端(End-To-End)服务,传输层向高层屏蔽了下层数据通信的细节
应用层为应用软件提供了很多服务,构建与TCP协议之上,屏蔽网络传输相关细节

HTTP发展历史

HTTP/0.9 只有一个命令GET 没有HEADER等描述数据的信息 服务器发送完毕 就关闭TCP连接
HTTP/1.0 增加了很多命令 增加status code和header 多字符集支持、多部分发送、权限、缓存等
HTTP/1.1 持久连接 pipeline 增加host和其他一些命令
HTTP/2.0 所有数据以二进制传输 同一个连接里面发送带哦个请求不再需要按照顺序来 头信息压缩以及推送等提高效率的功能

HTTP三次握手

在这里插入图片描述
在这里插入图片描述

URI URL URN

URI Uniform Resource Idetifier/统一资源标识符 用来唯一标识互联网上的信息资源 包括URL和URN
URL Uniform Resource Locator/统一资源定位器
URN 永久统一资源定位符 在资源移动之后还能被找到 目前还没有非常成熟的使用方案

请求报文

在这里插入图片描述

HTTP方法
用来定义对于资源的操作
常用有GET、POST等
从定义上讲有各自的语义
HTTP CODE
定义服务器对请求的处理结果
各自区间的CODE有各自的语义
好的HTTP服务可以通过CODE判断结果

CORS限制

允许方法

  • GET
  • HEAD
  • POST

允许Content-Type

  • text/plain
  • multipart/form-data
  • application/x-www-form-urlencoded

其他限制

  • 请求头限制
  • XMLHttpRequestUpload对象没有注册任何事件监听器
  • 请求头没有使用ReadableStream对象

突破限制方法

‘Access-Control-Allow-Origin’:‘*’,
‘Access-Control-Allow-Headers’:‘X-Test-Cors’,
‘Access-Control-Allow-Methods’:‘POST,PUT,Delete’,
‘Access-Control-Max-Age’:‘1000’

Cache-Control

可缓存性

  • public
  • private
  • no-cache

到期

  • max-age= < seconds >
  • s-maxage= < seconds >
  • max-stale= < seconds >

重新验证

  • must-revalidate
  • proxy-revalidate

其他

  • no-store
  • no-transform

缓存

在这里插入图片描述
Last-Modified

上次修改时间
配合If-Modified-Since或者If-Unmodified-Since
对比上次修改时间以验证资源是否需要更新

Etag

数据签名
配合If-Match或者If-Non-Match使用
对比资源的签名判断是否使用缓存

Cookie

  • 通过Set-Cookie设置
  • 下次请求会自动带上
  • 键值对,可以设置多个

属性

  • max-age和expires设置过期时间
  • Secure只在https的时候发送
  • HttpOnly无法通过document.cookie访问

CSP

CSP(Content-Security-Policy)

作用

  • 限制资源获取
  • 报告资源获取越权

限制方式

  • Default-src限制全局
  • 制定资源类型

资源类型

  • connect-src
  • font-src
  • frame-src
  • img-src
  • media-src
  • script-src
  • manifest-src
  • style-src

HTTPS

  • 公钥
  • 私钥

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值