当前位置: 首页 > news >正文

http基础

http

软件架构的分类

  • c/s架构,客户端,服务端之间的通信

  • b/s架构,浏览器,服务端之间的通信,这个是常见的了,微信小程序,就不需要下载app(专门的客户端了)就能直接的访问了

http请求流程

  • 访问http网页的流程
  1. 建立请求,客户端发送请求给服务器端(如果有访问控制策略的话,可能会被拒绝)

  2. 接收请求,服务单web软件读取请求的内容(报文)

  3. 处理请求,服务端根据请求资源从数据存储中返回资源并封装http协议

  4. 返回响应,将封装好的资源发送给客户端(浏览器),因此客户端可以得到响应并查看资源

  5. 记录日志,发送响应完成后,web服务器软件记录日志,也就是记录本次的事件

http的特点

  • 连接是没有状态的,每一次连接都是向服务器重新发送请求,服务器响应请求后结束连接(没有连接的保持,能够让服务器的资源更优,更快的相应请求)

    • 短连接,请求完成后,立即断开连接,有一个坏处就是,如果这个访问的时候资源很多的话,这样并发量特别大,占用资源了

    • 长连接,就是在网页资源特别多的情况下,对服务器发送的请求数就会更多,开启长连接,可以让多个资源通过一个tcp连接来完成传输

      • 不会立即关闭,下次连接走的就是上次的这个通道,连接复用
  • 单向连接,仅客户端发送请求连接服务器端,都是html放在浏览器上面的,只有客户端访问的时候才会看到,被动的连接

  • 明文传输(对于重要的用户数据可以用https进行加密)

http请求方法

  • 就是http可以做什么

  • get请求,直接获取网页的内容,url获取资源,访问nginx网页就是直接这种的get方法

  • post,传输数据,数据是不可见的,注册用户的时候传入给后端的数据库

  • head,查看网页的头部信息,服务器的版本,操作系统类型等

  • put 直接上传内容

  • delete 删除资源,但是现在的web应用中,禁止了,不是靠http删除

https加密访问

  • https保证了连接安全,数据的安全(数据都是加密传输的)

  • 加密的方式

    • 对称加密,指的是加密和解密使用的都是同一把密钥

    • 非对称加密,指的就是加密和解密使用的不同的密钥

对称加密

img

  • 流程:

    • 客户端发送一个数据,通过密钥进行加密发送给服务短

    • 服务端接收后,使用密钥进行解密数据,从而获取数据

  • 那么如果在这个密钥传输的过程汇总,被截取了,那么这个数据就能被获取到,数据的安全性不够

  • 优点:对数据的加解密都是非常的快

  • 缺点:不够安全

非对称加密

img

  • 通常就是服务端生成一个密钥对,公钥和私钥

  • 流程

    • 客户端发送请求给服务端

    • 服务端相应请求将公钥发送给客户端

    • 客户端将用户名和密码使用公钥加密后发送给服务端

    • 服务端通过这个私钥进行解密即可获取数据

    • 整个过程中,私钥是没有传输的,安全性比较高,但是消耗的资源比较的高

  • 使用公钥加密,使用私钥解密,私钥谁生成谁保管,私钥不会再网络中流通

  • ssh登录就是这样的,2台服务器,一个服务器生成了公钥和私钥,我将这个私钥给另外一台机器,然后建立免密登录就能直接进行登录了

  • 数字签名 使用私钥签名,通过公钥进行校验(解密的操作),通常的就是rpm包

ca签名

ca是什么

  • 是一个权威机构,专门用来颁发ssl证书,证书可以用在程序,服务器,web服务器等各种需要认证的或者加密或者解密的场景中

  • 比如访问百度,你怎么知道这个不是假的呢,ca认证的即可

  • ca在https场景中:专门用来对网站的公钥进行签名(网站的负责人提交CSR(CSR文件中包含了,公钥、网站的域名、开设的服务器的地址、申请人等。。。)申请信息给到权威机构,权威机构CA使用自己的私钥进行签名,签名后就会得到证书(证书是一个CRT的文件))

网站的证书

  • 单域名证书: 也就是证书只对一个特定的域名进行签名 这是所有证书中最便宜的(大部分公有云网站和CA机构都提供免费申请一般是三个月有效)

  • 多域名证书: 给多个特定的域名进行签名(这个是最具性价比)

  • 通配符证书: 就是对example.com 所有子域名进行签名(这个是最贵的)

ca在https中的作用

  • 就是验证服务端的身份,也就是判断服务端是不是冒充的

  • 1.用户发起连接请求

  • 2.服务端相应请求并发送证书

  • 3.浏览器会根据这个这个证书信息,使用证书的中的ca公钥进行校验

  • 4.如果检验得出信息与证书的中信息一致,则说明这个服务端是可靠的

  • 5.如果校验通过,客户端使用服务端的公钥进行加密随机数并发送给服务端

  • 6.服务端通过自己的私钥解密随机数,服务端使用随机数进行对称加密,加密数据发送给客户端

  • 7.客户端通过本地的随机数解密得到数据

  • 因此https中,非对称加密用来验证服务端身份,对称加密用来传递数据

http://www.hskmm.com/?act=detail&tid=34381

相关文章:

  • Java基础语法与面向对象
  • Java中java.util.Random的用法
  • 2025年磨粉机厂家推荐排行榜,雷蒙磨粉机,环辊磨粉机,摆式磨粉机,矿石磨粉机,超微磨粉机,高压磨粉机公司推荐!
  • 我的学习开始及历程
  • 2025信息流代运营推荐:线尚网络精准投放,效果显著!
  • 零售行业绩效流程推行难点及 Tita 目标绩效一体化管理方案
  • Godot-C#处理节点关系
  • 软件工程-结队项目
  • 2025 年防撞钢护栏厂家推荐聊城市泰锌金属材料有限公司,桥梁,不锈钢,复合管,景观,灯光,热镀锌,河道,铝合金,绳索防撞钢护栏公司推荐
  • 2025年聚氨酯制品厂家推荐排行榜,浇注型聚氨酯,聚氨酯预聚体,聚氨酯胶黏剂,聚氨酯组合料,液体聚氨酯,专业品质与创新技术之选
  • Vue中keep-alive实现原理解析
  • 深入学习Spring Boot框架
  • 《探索C语言中数组的奥秘(下)》 - 教程
  • Java异步编程难题拆解
  • 2025年智能防爆灯/工矿灯厂家推荐排行榜,专业安全与高效照明解决方案!
  • 预测不可预测之物的校准学习技术
  • 2025年水产养殖设备厂家推荐排行榜,PP鱼池/微滤机/不锈钢微滤机/锦鲤池微滤机一体机/全自动污水过滤器/生物过滤器/循环水养殖系统公司推荐!
  • Java 无锁方式实现高性能线程
  • java语言程序设计类与对象课后作业 - 20243867孙堃2405
  • 详细介绍:2020年美国新冠肺炎疫情数据分析与可视化
  • java流程控制。
  • Java基础——包机制,JavaDoc生成文档
  • Misaka2298 的写题自检表
  • Java 中 NullPointerException 的 3 个常见原因及解决
  • Java 方法参数传递:到底是值传递还是引用传递?
  • ES6 箭头函数
  • mysql嵌套查询如何利用索引?
  • 解码Linux文件IO之LCD屏原理及应用
  • centos 7.9快速部署ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统用于信息收集
  • 3 分钟搞懂 Java 中 this 关键字的用法