2023-02-15 23:04阅读: 50评论: 0推荐: 0

1. 网络协议

协议介绍
  • http协议(超文本传输协议)
    • http协议是基于Tcp/ip协议之上的应用层协议,不关心数据传输的细节,用来规范客户端和服务器端的数据传输格式(客户端和服务器端请求和响应的标准)

    • 关于tcp

      • tcp提供一种面向连接,可靠的字节流服务
      • 在一个tcp连接中,仅有两方彼此进行通信,广播和多播不能用于tcp
      • tcp 使用校验和,确认和重传机制来保证可靠传输
      • tcp 给数据分解进行排序,并使用累积确认保证数据的顺序不变和非重复
      • tcp使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小来进行拥塞控制
    • 三次握手和四次挥手

      • 三次握手
        img
      • 四次挥手
        img
    • 组成

      • http报文
        1. 请求报文
          img
          简单来说(开始行,请求头,请求实体)
        2. 响应报文
          img
          简单来说(状态行,响应头,响应实体)
    • 工作原理

      • http协议是基于请求-响应模型
      • 请求和响应步骤
        1. 客户端连接到Web服务器
          • 一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.luffycity.com
        2. 发送http请求
          • 通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
        3. 服务器接受请求并返回http响应
          • Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成
        4. 释放连接Tcp连接
        5. 客户端浏览器解析html内容
      • 例如:在浏览器地址栏输入url,按下回车会经历以下流程
        img
  • https协议
    • 组成
      • https是由两部分组成:http+ ssl/tls(一层加密信息模块)
    • 工作原理
      1. 首先http请求服务端生成证书,客户端对证书的有效性,合法性,证书的公钥(rsa加密)等进行校验
      2. 客户端如果校验通过后,就会根据证书的公钥的有效,生成随机数,随机数使用公钥进行加密(rsa加密)
      3. 消息体产生后,对它的摘要进行md5(或sha1)加密此时就得到了rsa签名
      4. 发送给服务端,此时只有服务端(rsa私钥)能解密
      5. 解密得到的随机数,在用aes加密,作为密钥
        img
  • websocket
    • websocket是html5新增的协议,目的是在浏览器和服务器之间建立一个不受限的双向通信,属于应用层协议,它基于Tcp传输协议,并复用Http握手通道
    • 已经有http协议,为什么还需要另外一个协议?
      • http协议有一个缺陷,通信只能客户端发起
    • 为什么WebSocket连接可以实现全双工通信而HTTP连接不行呢?
      • HTTP协议是建立在TCP协议之上的,TCP协议本身就实现了全双工通信,但是HTTP协议的请求-应答机制限制了全双工通信
    • 特点:
      • websocket可以在浏览器中使用
      • 支持双向通信(服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息)
      • 数据传输格式:文本,二进制数据
    • img
    • 结构图
      img
  • 跨域
    • 同源策略
      • 如果A站在域名a.com页面的JavaScript调用A站自己的API时,没有问题,如果A站在域名a.com页面的JavaScript调用B站b.com的API时,将被浏览器拒绝访问,因为不满足同源策略。
      • 同源策略要求域名要完全相同(a.com和www.a.com不同),协议要相同(http和https不同),端口要相同
    • CORS(跨资源共享)
      • CORS是一种基于HTTP头的机制,该机制通过允许服务器标示除它自己以外的其他源(域,协议,端口),使浏览器允许这些源访问加载自己的资源
      • XMLHttoRequest和Fetch API遵循同源策略
      • img

本文作者:乐天--

本文链接:https://www.cnblogs.com/blackamon/p/17125111.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   乐天--  阅读(50)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起