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

【Web服务】HTTP和DNS重要知识

304状态码

HTTP状态码中的304状态码表示"未修改",通常在客户端发起了一个带有If-Modified-Since头部的GET请求时会得到这个响应。服务器通过比较If-Modified-Since头部指定的时间戳和资源的最后修改时间来判断资源是否被修改过,如果没有修改则返回304状态码,告诉客户端使用缓存中的版本即可。

这种方式可以有效地减少网络流量和服务器负载,因为客户端可以避免不必要的下载。同时也保证了资源的一致性和正确性,因为只有在资源被修改时才会重新下载。

503 service unavailable

GET和POST有什么区别吗?

GET和POST是HTTP协议中最常用的两种请求方法,它们有以下区别:

GET请求会将请求参数附加在URL后面,而POST请求则将请求参数放在请求体中。因此,GET请求的请求参数可以直接在浏览器地址栏中看到,而POST请求的请求参数则不可见。

GET请求的安全性相对较低,因为请求参数暴露在URL中,容易被拦截或修改;而POST请求的安全性相对较高,请求参数被放在请求体中,不易被拦截或修改。

GET请求通常用于获取资源,而POST请求通常用于提交数据。

GET请求的响应可以被缓存,从而提高性能;而POST请求的响应不能被缓存。

总的来说,GET请求适用于请求数据,而POST请求适用于提交数据。

HTTP 各版本

HTTPS使用了SSL/TLS加密来保证数据的安全性和完整性。HTTP是明文传输的,而HTTPS则使用SSL/TLS加密,使得数据在传输过程中更难被窃听、篡改或伪造。

HTTPS比HTTP多了一次握手,即TLS/SSL握手。这个握手是建立连接时进行的,目的是确保通信双方都能够理解加密协议并根据协议协商出一个共同的加密密钥。

在验证阶段,除了传递密钥以外,HTTPS还会发送证书给客户端。这个证书包含了服务器的公钥、域名等信息,客户端可以通过证书来验证服务器身份的真实性。

HTTP 2.0
多路复用:HTTP/2 支持多路复用,可以同时处理多个请求和响应,从而提高网络效率。
二进制分帧:HTTP/2 将所有数据分成二进制格式的帧,每个帧都有一个唯一标识符,这种方式可以提高传输效率。
首部压缩:HTTP/2 可以对头部数据进行压缩,减少了传输的数据量。
服务器推送:HTTP/2 支持服务器推送,可以在客户端请求前将相关资源主动推送给客户端,提高页面加载速度。

SSL传输过程
SSL(Secure Socket Layer)加密是一种常用的加密通信协议,其基本步骤如下:

客户端发起请求:客户端向服务器发送一个HTTPS请求。

服务器反馈证书:服务器会将自己的身份信息以及公钥封装在一个数字证书中,并将其发送给客户端。

客户端验证证书:客户端接收到证书后,会验证证书的合法性和真实性。如果证书合法,则继续进行 SSL 握手过程,否则提示证书不受信任。

客户端生成密钥:验证证书成功后,客户端会生成一个对称密钥,并使用服务器的公钥进行加密。

传输加密数据:服务器使用自己的私钥解密客户端发送的加密数据,然后再使用对称密钥加密需要传输的数据并发送给客户端。

数据传输完成:客户端接收到加密数据后,使用对称密钥解密数据并进行处理,从而完成整个数据传输过程。

总的来说,SSL加密过程分为握手阶段和数据传输阶段两个部分。握手阶段主要是通过数字证书等机制建立安全通道,而数据传输阶段则是通过对称密钥进行加密和解密实现数据安全传输。

对称加密:双方用的同一密钥,速度快,但一方泄露就危险了。
非对称加密:使用成对的公钥和私钥进行加密和解密。公钥可以公开,而私钥必须保持机密性。发送方使用接收方的公钥进行加密接收方使用自己的私钥进行解密。由于只有接收方知道私钥,所以非对称密钥加密更安全,但速度比对 称密钥加密得多,适用于小量数据加密。

HTTPS 四次握手

HTTPS使用的是安全套接字层(SSL)或传输层安全性协议(TLS),它们都是用于加密数据传输的。HTTPS的四次握手过程如下:

  1. 客户端向服务器发送一个SSL/TLS协议版本号以及所支持的加密算法列表。
  2. 服务器从客户端提供的加密算法列表中选择一种加密算法,并向客户端返回一个包含该加密算法的SSL/TLS协议版本号,以及服务器的数字证书。
  3. 客户端验证服务器的数字证书是否有效并符合要求,如果数字证书无效或不符合要求,则会向客户端发出警告。
  4. 如果数字证书有效且符合要求,客户端会生成一个随机数,并使用服务器公钥加密该随机数,并将其发送给服务器。服务器使用自己的私钥解密该随机数,并使用该随机数生成对称密钥。此后,客户端和服务器之间的所有通信均使用该对称密钥进行加密和解密。
    在这里插入图片描述

数字签名的验证过程
在这里插入图片描述
说明:
具体来说,接收者首先使用发送者的公钥来对数字签名进行解密操作(这里用“解密”这个词并不准确,因为数字签名并没有被加密)。这个操作会得到一个摘要,然后接收者使用相同的哈希函数生成原始消息的摘要,并将这两个摘要进行比较。

如果两个摘要相同,则说明数字签名是有效的,并且可以确定原始消息确实是由发送者发送的,并且没有被篡改或伪造。这种验证过程依赖于非对称加密算法的特性,即只有拥有私钥的一方才能够对消息进行签名,而任何人都可以使用公钥来验证签名的有效性。

所以,公钥并不能直接用来解密数字签名,而是用来验证数字签名的有效性。

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

HTTPS的四次握手和数字签名是两个不同的概念

HTTPS的四次握手是用于建立安全连接的过程。在进行HTTPS通信时,客户端和服务器之间需要先建立一个安全连接,以保证通信内容不会被窃听或篡改。这个建立安全连接的过程就是四次握手。在四次握手的过程中,客户端和服务器通过交换消息来协商使用的加密算法、生成密钥等信息,以确保双方都能够理解通信内容。

而数字签名则是用于验证通信内容的完整性和真实性。在HTTPS通信中,服务器会将自己的公钥发送给客户端,客户端使用该公钥对服务器发送的数字证书进行验证,以确认服务器的身份和提供证书的机构的合法性。数字证书中包含了服务器的公钥、相关证书信息,并由证书颁发机构进行数字签名,这样就可以保证通信内容只能由合法的服务器所提供,并避免了中间人攻击等风险。

DNS

dns 记录类型

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

基于view的DNS系统和CDN

基于view的DNS系统和CDN经常一起使用,以提高互联网服务的性能和可靠性。

基于view的DNS系统可以根据不同的用户访问位置和网络条件返回不同的IP地址。这样,就可以将用户与距离更近、响应更快的服务器进行连接,并减少网络延迟。此外,基于view的DNS系统还可以根据其他因素(例如用户设备类型、语言偏好等)返回特定版本的网站或应用程序内容。

CDN系统则可以加速网站、应用程序和其他互联网服务的响应时间,通过缓存静态资源并将其分发到多个全球位置的边缘节点上。这样可以减少网络拥塞和传输时间,并提供更好的用户体验。基于view的DNS系统和CDN系统配合使用可以进一步优化内容交付的过程,提高网络性能和可靠性。

总之,基于view的DNS系统和CDN系统是完美的互补工具,可以为网站和应用程序提供更好的性能和可靠性,同时也提高了用户的满意度。

CDN

CDN全称为Content Delivery Network,即内容分发网络。它是一种通过部署在全球各地的服务器来加速互联网内容传输的技术。CDN可以缩短网站、应用程序和其他互联网服务的响应时间,减少网络拥塞,并提高用户访问这些服务的体验。

当使用CDN时,静态资源(如图片、视频、CSS和JavaScript文件等)被存储在CDN提供商的服务器上。当用户请求这些资源时,CDN会根据用户的位置将资源从最近的服务器缓存中提供,而不是直接从源服务器上获取。这样可以大大减少数据传输时间和带宽占用,从而提高加载速度和性能。

除了加速内容传输外,CDN还可以提高对抗DDoS攻击的能力,因为它们可以通过分散流量来抵御攻击。此外,使用CDN还可以降低服务器负载,节省成本。

它是一个分布式的网络架构,用于加速互联网上的内容传输。CDN可以将用户请求的数据从源服务器复制到离用户更近的缓存服务器中,以降低用户请求的响应时间和减轻源服务器的负载。

CDN系统通常由多个部分组成,包括:源服务器、缓存服务器、路由器和负载均衡器等。其中,源服务器存储着原始内容,缓存服务器存储着已经复制的数据,并将其提供给用户请求的终端设备。

当用户请求资源时,CDN系统会通过负载均衡器选择最近的缓存服务器提供服务。这样,用户可以更快地获取所需内容,并且源服务器也可以减轻负载,提高整体性能和可靠性。

除了加速内容传递外,CDN还具有其他功能,如增强安全性、减少带宽成本、扩展业务范围等。因此,CDN已经广泛应用于各种互联网应用,如在线视频、电子商务、游戏等领域。

CDN的核心技术

域名解析技术:CDN系统通过将资源的域名解析到最近的缓存服务器,以提高资源的访问速度。这一过程通常由DNS服务完成。

负载均衡技术:CDN系统通过负载均衡器选择最近的缓存服务器提供服务,从而分摊流量和降低延迟。

缓存算法:CDN系统采用不同的缓存算法来确定哪些内容应该被缓存、在哪些节点上缓存以及缓存多长时间等问题。

数据同步技术:CDN系统需要保证各个缓存节点之间的数据同步,以确保用户获取的内容是最新的。

安全技术:CDN系统可以通过加密、防御DDoS攻击等安全技术来保障内容的安全性。

流媒体传输技术:CDN系统为了支持在线视频、音频等流媒体应用,需要采用特定的传输协议和编码格式,如HLS、RTMP等。

边缘计算技术:CDN系统可以利用边缘节点的计算能力,将一部分计算任务下放到边缘节点上,以减少网络延迟和提高应用性能。

以上技术都是CDN系统的核心技术,不同的CDN服务提供商可能会有不同的实现方式和优化策略。

相关文章:

【Web服务】HTTP和DNS重要知识

304状态码 HTTP状态码中的304状态码表示"未修改",通常在客户端发起了一个带有If-Modified-Since头部的GET请求时会得到这个响应。服务器通过比较If-Modified-Since头部指定的时间戳和资源的最后修改时间来判断资源是否被修改过,如果没有修改则…...

【C++】-关于类和对象的默认成员函数(中)-拷贝构造函数和赋值运算符重载函数

💖作者:小树苗渴望变成参天大树 ❤️‍🩹作者宣言:认真写好每一篇博客 💨作者gitee:gitee 💞作者专栏:C语言,数据结构初阶,Linux,C 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点…...

c++11上篇

c11 1.C11简介2.列表初始化2.1 {}初始化2.2 std::initializer_list 3.变量类型推导3.1 auto3.2 decltype3.3 nullptr 4.范围for循环5.final与override6.智能指针7.新增加容器---静态数组array、forward_list以及unordered系列8.默认成员函数控制9.右值引…...

异构无线传感器网络路由算法研究(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 ​无线传感器网络(Wireless Sensor Networks, WSN)是一种新型的融合传感器、计算机、通信等多学科的信息获取和处理技术的网络,…...

MySQL数据库——MySQL TRUNCATE:清空表记录

MySQL 提供了 DELETE 和 TRUNCATE 关键字来删除表中的数据。下面主要讲解一下 TRUNCATE 关键字的使用。 TRUNCATE 关键字用于完全清空一个表。其语法格式如下: TRUNCATE [TABLE] 表名 其中,TABLE 关键字可省略。 例 1 新建表 tb_student_course&…...

财报解读:连续三年逆势增长的背后,欧派家居到底靠的是什么?

能在过去3年逆势增长的家居企业并不多,而欧派家居就是其中一个。4月25日,欧派家居发布2022年年度报告。据年报数据显示,2022年,欧派家居共实现营业收入224.80亿元,净利润约26.88亿元。 从2020年到2022年,欧…...

希望计算机专业同学都知道这些宝藏博主

湖科大教书匠——计算机网络 “宝藏老师”、“干货满满”、“羡慕湖科大”…这些都是网友对这门网课的评价,可见网课质量之高! 湖南科技大学《计算机网络》微课堂是该校高军老师精心制作的视频课程,用简单的语言描述复杂的问题,…...

1694_week1_MIT使用Python编程学习手记1

全部学习汇总: GreyZhang/python_basic: My learning notes about python. (github.com) 首先说明一下,这部分信息的整理只是我个人的理解。由于自己的知识功底以及英语水准,很可能会有大量的疏漏。再此,我只想把自己学习时候的一…...

第二十一章 光源

光源是每个场景必不可少的部分,光源除了能够照亮场景之外,还可以产生阴影效果。 Unity中分为四种光源类型: 1. 方向光:Directional Light 用于模拟太阳光,方向光任何地方都能照射到。 2. 点光源:Point L…...

CVPR 2023 超分辨率(super-resolution)方向上接收论文总结

目录 CVPR 2023图像超分任意尺度超分盲超分 视频超分特殊场景 总结参考资料 CVPR 2023 官网链接:https://cvpr2023.thecvf.com/ 会议时间:2023年6月18日-6月22日,加拿大温哥华 CVPR 2023统计数据: 提交:9155篇论文接…...

Python 基于 Django 的学生成绩管理系统,可视化界面(附源码,教程)

1简介 对于学生成绩管理系统,充分运用现代化的信息技术手段,对于学生成绩信息管理发展的趋势就是信息化,信息化时代下的信息管理,需要深化信息管理体制与手段的改革,充分运用信息化手段来全方位的进行学生成绩管理系统…...

第二弹进阶吴恩达 ChatGPT Prompt 技巧

第一弹笔记在这里: 总结吴恩达 ChatGPT Prompt 免费课程 今天分享第二弹,进阶篇。 第一点,任务序列化。 通常看完一篇长文,脑子里往往充满无数疑问。急切想知道所有答案,必须列一个问题清单。对话式问法,对…...

约瑟夫环问题

约瑟夫问题 题目描述 n n n 个人围成一圈,从第一个人开始报数,数到 m m m 的人出列,再由下一个人重新从 1 1 1 开始报数,数到 m m m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。…...

JavaScript中的异步编程

当我们在编写JavaScript代码时,经常会遇到需要执行长时间运行的任务的情况,例如从服务器获取数据或进行复杂的计算。在这些情况下,我们不希望阻塞用户界面,因为这会使网站看起来卡顿,甚至无响应。为了避免这种情况&…...

奥斯汀独家对话|从机构的「拉扯」中成长的美国加密监管

‍前言 4月25日,在美国得克萨斯州的首府奥斯汀,这座充满活力和创造力的城市,欧科云链研究院与来自哥伦比亚商学院的Austin Campbell教授就美国加密监管以及其相关话题进行了一次深入探讨。双方讨论了美国整体的监管问题、监管逻辑、最新的稳…...

PostgreSQL16中pg_dump的LZ4和ZSTD压缩

PostgreSQL16中pg_dump的LZ4和ZSTD压缩 pg_dump压缩lz4和zstd LZ4和ZSTD压缩算法合入了PG16。LZ4补丁的作者是Georgios Kokolatos。由Tomas Vondra提交。由Michael Paquier、Rachel Heaton、Justin Pryzby、Shi Yu 和 Tomas Vondra 审阅。提交消息是: Expand pg_dum…...

网络安全基础入门学习路线

在大多数的思维里总觉得学习网络安全得先收集资料、学习编程、学习计算机基础,这样不是不可以,但是这样学效率太低了! 你要知道网络安全是一门技术,任何技术的学习一定是以实践为主的。也就是说很多的理论知识其实是可以在实践中…...

错误检测技术:奇偶校验

文章目录 参考描述奇校验与偶校验错误检测技术奇偶校验 奇校验与偶校验奇校验偶校验局限性漏网之鱼 奇偶校验的三种形式水平奇偶校验垂直奇偶校验水平垂直奇偶校验优劣漏网之鱼 参考 项目描述搜索引擎Google 、Bing百度百科奇偶校验计算机网络 基础与应用(微课版&a…...

语义版本控制规范(SemVer)

Semantic Versioning 2.0.0 官网 给出一个版本号MAJOR.MINOR.PATCH,增加如下: MAJOR version 进行不兼容的API更改时MINOR version 当您以向后兼容的方式添加功能时PATCH version 当您进行向后兼容的错误修复时 预发布(pre-release )和构建元数据的附…...

基于Flask的留言板的设计与实现

这是《Flask Web开发实战:入门、进阶与原理解析》这本书中的一个小项目,我在学习后根据书中的教程实现了留言板的功能,并结合我的思路将代码做了一些调整。 下面这是实现后的展示图片 文章目录 设计思路项目代码exts.pymodels.pyforms.pyerrors.pycomma…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

基于Springboot+Vue的办公管理系统

角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

git: early EOF

macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...