IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> http状态码、https、DNS -> 正文阅读

[网络协议]http状态码、https、DNS

HTTP状态码

2xx–成功处理请求

http状态码说明
200成功返回资源
201有新资源成功在服务端被创建
202服务器接收并开始处理请求,但请求未处理完成
203服务器已成功处理了请求,但返回的信息可能来自另一来源
204服务器成功处理了请求,但没有返回任何内容
205服务器成功处理了请求,需要重置当前视图

3xx–重定向

重定向简介

  • 当客户端访问的资源路径改变、域名改变等一些情况,此时访问旧的资源路径就会引发404,为了防止出现404,客户端访问旧资源路径时,服务端会返回301/302,其中request中包含目标资源所在的新路径。

301–永久重定向

  • 301状态码是永久重定向(Moved Permanently),表示所请求的资源已经永久地转移到新的位置,这包含域名的改变或者是资源路径的改变。
    在这里插入图片描述

302–临时重定向

  • 302状态码是临时重定向(Move Temporarily),表示所请求的资源临时地转移到新的位置,一般是24到48小时以内的转移会用到302。
    在这里插入图片描述

301和302的区别

  • 302虽然是重定向,但鉴于其实临时的,所以浏览器对于自己的URL缓存不会改变,依然是原路径。在302重定向结束后,只需要删除相应的重定向相关代码即可恢复原状。
  • 301是永久的,所以浏览器会更改自身的URL缓存,将旧的路径换为新的路径。在301重定向结束后,如果只删除重定向相关代码,客户端的URL缓存是不会改变的,因此用户点击收藏夹时,就会访问之前301时新的URL,但是该路径已经被删除换为旧的路径,因此用户得到的只会是404。

参考:HTTP状态码301和302的区别详解

304–未修改

  • 当客户端拥有可能过期的缓存时,会携带缓存的标识、事件询问服务端是否可以复用,而304就是告诉客户端可以复用

307–临时重定向

  • 类似302,但要求重定向后的请求方法必须和原方法相同,不得改变

4xx–客户端错误

http状态码说明
400服务端认为客户端出现错误,但不能明确是什么错误使用此状态码
401用户认证信息缺失或不正确,导致服务端不能处理请求
403服务端理解请求的含义,但没有权限执行此请求,即拒绝执行请求
404服务器没有找到该资源

5xx–服务端错误

http状态码说明
500服务器内部错误,且不属于501、502、503的错误类型
501服务器不支持请求实现的功能
502代理服务器无法获得合法响应
503服务器资源尚未准备好处理该请求

HTTPS

  • HTTPS 协议其实非常简单,RFC 文档很小,只有短短的 7 页,里面规定了新的协议名,默认端口号443,至于其他的应答模式、报文结构、请求方法、URI、头字段、连接管理等等都完全沿用 HTTP,HTTPS实际上就是HTTP+SSL/TLS 。

SSL/TLS

  • TLS(Transport Layer Security) 是 SSL(Secure Socket Layer) 的后续版本,它们是用于在互联网两台计算机之间用于身份验证和加密的一种协议。
  • TLS 用于两个通信应用程序之间提供保密性和数据完整性。TLS 由记录协议、握手协议、警告协议、变更密码规范协议、扩展协议等几个子协议组成,综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术.

对称加密

简介

在了解对称加密前,我们先来了解一下密码学的东西的一些概念:

  • 明文(Plaintext),可以看见并识别的数据
  • 密文(Ciphertext),对明文进行某种加密后使他人无法识别就变成了密文
  • 加密(Encrypt),把原始的信息(明文)转换为密文的信息变换过程
  • 解密(Decrypt),把已经加密的信息恢复成明文的过程
  • 密钥(secret key),是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数

假设加密就是把数据装在一个带锁的盒子里,密钥就是开锁的钥匙

  • 对称密钥就是加密和解密用同一把密钥完成
    在这里插入图片描述
  • 目前最常用的对称密钥算法是 AES-128, AES-192、AES-256 和 ChaCha20。
  • AES-128, AES-192 和 AES-256 都是属于 AES ,AES 的全称是Advanced Encryption Standard(高级加密标准),安全强度很高,性能也很好,是应用最广泛的对称加密算法。

加密算法参考:什么是对称加密(对称加密简介)

优缺点

  • 优点:算法公开、计算量小、加密速度快、加密效率高。
  • 缺点:由于对称加密使用同一把密钥进行加解密,传送密钥是使用明文传输,可能被他人截取

非对称加密

简介

  • 非对称加密中,接收方和发送发都有两个密钥,一个是公钥,一个是私钥。公钥和私钥都可以用来加密,但使用公钥加密的数据只能由私钥进行解密,使用私钥加密的数据只能由公钥进行解密。一般公开密钥可供任何人使用,私钥只有你自己能够知道。
    在这里插入图片描述
  • 非对称加密可以解决密钥交换的问题。自己保管私钥,在网上任意分发公钥,你发送信息时只要用对方的公钥加密就行了,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以就无法破解密文。
    在这里插入图片描述
  • 非对称加密主要算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC (椭圆曲线加密算法)。使用最广泛的是 RSA 算法,Elgamal 是另一种常用的非对称加密算法。
  • 非对称加密虽然解决了密钥传递的安全性,但加密和解密花费时间长、速度慢,每次需要生成两把钥匙,消耗资源且管理困难,所以一般会将非对称加密和对称加密结合使用。

数字摘要

  • 传输数据的过程中,我们不仅要保证数据的机密性,还要保证数据的完整性。如何实现完整性呢?在 TLS 中,实现完整性的手段主要是摘要算法(Digest Algorithm)。
  • 摘要算法(Digest)又称哈希算法(Hash),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出。摘要算法的运算结果具有不可逆性,即很难通过结果得到输入的数据。
  • 可以把摘要算法理解成一种特殊的压缩算法,它能够把任意长度的数据压缩成一种固定长度的字符串,这就好像是给数据加了一把锁。
    在这里插入图片描述
  • 有了摘要算法就能够实现数据的完整性,哪怕你在文件中改变一个标点符号,增加一个空格,生成的文件摘要也会完全不同。所以发送方在发送数据时会将数据经摘要算法得到摘要,然后将数据和摘要一起发送给接收方,接收方在收到数据后,也将数据交由摘要算法进行计算,并将结果进行比对,如果相同,则说明数据是完整的。
  • 常用的摘要算法有:SM3、MD5、SHA-1、RipeMD-160、SHA-256、SHA-512。

数字签名

  • 用公钥加密,私钥解密,称为加密;用私钥加密,公钥解密称为签名。数字签名可以用来证明一个人的身份,私钥只有你一个人所有,所以能够辨别唯一性。
    在这里插入图片描述

CA证书

  • 公开密钥加密方式还是存在一些问题的。那就是无法证明公开密钥本身就是货真价实的公开密钥。比如,正准备和某台服务器建立公开密钥加密方式下的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输途中,真正的公开密钥已经被攻击者替换掉了
  • 为了解决上述问题,可以使用由数字证书认证机构(CA,Certificate Authority)和其相关机关颁发的公开密钥证书。数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场上。
  • 数字证书认证机构的业务流程:首先,服务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开密钥的证书的摘要做数字签名,并将摘要和证书后绑定在一起。服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通信。公钥证书也可叫做数字证书或直接称为证书。接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事:一,认证服务器的公开密钥的是真实有效的数字证书认证机构。二,服务器的公开密钥是值得信赖的。此处认证机关的公开密钥必须安全地转交给客户端。使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。
    在这里插入图片描述

HTTPS工作过程

在这里插入图片描述

  • 客服端向服务器发送client hello发起ssl连接请求,报文中包含客户端支持的 SSL 的指定版本、加密组件(Cipher Suite)列表(所使用的 加密算法及 密钥长度等)和一个随机数Random1。
  • 服务器可进行 SSL 通信时,会以 Server Hello 报文作为应答。和客户端一样,在报文中包含 SSL 版本以及加密组件,也有一个随机数Random2。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。
  • 之后服务器发送 Certificate 报文。报文中包含 公开密钥证书。
  • 最后服务器发送 Server Hello Done 报文通知客户端,最初阶段的 SSL握手协商部分结束。
  • 客户端需要对服务端发送的证书进行验证,通过操作系统内置的CA证书,将服务器发送的证书的数字签名进行解密,并将证书的公钥进行相同算法的HASH与解密的数字签名解密的内容进行对比,验证证书是否合法有效,是否被劫持更换;
  • 客户端验证证书合法,然后生成一个随机值Random3,用服务器的公钥对Random3进行加密,生成Pre-Master Key,客户端以Client Key Exchange报文将Pre-Master Key发送到服务端,此后发送Change Cipher Spec报文表示此后数据传输进行加密传输;
  • 客户端发送 Finished 报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准。
  • 服务端将Pre-Master Key用自己的私钥解密为Random3,服务端发送Change Cipher Spec报文表示此后数据传输进行加密传输;
  • 服务器同样发送 Finished 报文。

DNS

  • 以访问百度时发生了什么为例,说明其中的过程。
  • 当在浏览器输入www.baidu.com并按下回车后,浏览器首先需要将域名解析为IP。
  • 为了将域名解析为IP,首先会查看本地DNS缓存:在cmd中输入ipconfig/displaydns可查看系统DNS缓存
    在这里插入图片描述

Windows CMD常用命令大全

  • 如果系统缓存没有记录,则会查询本地的hosts文件,hosts文件存放着一些常用的网址域名与其对应的IP地址的静态映射,hosts文件负责解析域名并优先于DNS服务。
    在这里插入图片描述
  • 如果hosts文件中也没有记录,就会向本地的DNS服务器发送DNS请求
    在这里插入图片描述
  • 请求一般会首先来到本地DNS服务器,本地DNS服务器首先查看本地缓存,没有记录的话本地DNS服务器就会代替PC向根域名服务器发起请求,根域名会返回com域的顶级域名服务器的IP地址,本地DNS服务器收到回复的IP后向该IP发起DNS请求;顶级域名服务器回复baidu.com域的权威服务器的IP地址,本地DNS服务器继续根据回复的IP发起请求,这时权威服务器就会返回www.baidu.com的IP地址。
    在这里插入图片描述
  • 会得www.baidu.com的IP地址后,客户端就会向该IP发起TCP连接

在这里插入图片描述

  • 建立TCP连接后,客户端向服务端发送HTTP-request报文
    在这里插入图片描述
  • 服务端回复reponse报文,浏览器引擎收到reponse报文后渲染、解析内容,最后得到百度的首页
    在这里插入图片描述
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:50:39  更:2022-07-21 21:51:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 20:20:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计