理解 HTTPS:加密解密的全过程
在互联网中,确保通信的安全至关重要,特别是当我们浏览网站时,HTTPS(安全的超文本传输协议)成为保护用户数据隐私的关键技术。 本文将通过简单的解释和流程图,深入理解 HTTPS 如何在客户端和服务器之间保证通信安全。 什么是 HTTPS? HTTPS 是 HTTP 协议的安全版本,它通过 SSL/TLS 协议 为 HTTP 数据传输提供加密、认证和完整性保护。其核心优势在于: ...
在互联网中,确保通信的安全至关重要,特别是当我们浏览网站时,HTTPS(安全的超文本传输协议)成为保护用户数据隐私的关键技术。 本文将通过简单的解释和流程图,深入理解 HTTPS 如何在客户端和服务器之间保证通信安全。 什么是 HTTPS? HTTPS 是 HTTP 协议的安全版本,它通过 SSL/TLS 协议 为 HTTP 数据传输提供加密、认证和完整性保护。其核心优势在于: ...
在 Web 应用中,实时通信非常关键,无论是消息传递、通知还是数据更新。为了实现实时通信,通常使用 HTTP 轮询、服务器推送事件(SSE)、WebSocket 和 WebHooks 四种方法。本文将深入探讨它们的工作原理、适用场景及示例。 1. HTTP 轮询 工作原理:HTTP 轮询是一种最基础的通信方法,客户端定期向服务器发送请求,查询是否有新数据。即使没有更新,服务器也会响应,这...
AZ-305 是微软提供的 Azure 认证考试之一,考试的全称是 Designing Microsoft Azure Infrastructure Solutions, 考试通过后获取的证书名称是 Microsoft Certified: Azure Solutions Architect Expert。 AZ-305 认证主要面向云解决方案架构师,其核心作用是帮助 IT 专业人士掌握在...
Python 启动http服务器 # Python3 python -m http.server -cgi 8080 Python 取环境变量 import os print(os.environ['YOURENVNAME']) Python Function定义 def my_func(a, b): return a+b Python 时间戳 import ti...
Git是一个非常好的版本管理工具,一般只用到了一些常用的命令做简单的备份回退等。最近结合《ProGit》和《Git权威指南》进行了查漏补缺和更系统深入的学习,下面是结合ProGit一书做的读书简记。 起步 1 初次运行Git前的配置 Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。这些变量存储在三个不同的位置: . /etc/gi...
之前有篇博客介绍了 docker 的一些常用使用命令,这篇博客来详细研究一下 docker 是如何运行的。 我们可以使用 docker exec 在这个容器(container)内来执行一个进程。 或者说,在这个容器内,我们是 root,这里的容器是什么呢,在 linux 里面,容器实现的方法就是 namespace . 什么是 namespace 我们查询一下官方文档 https:...
圣诞节到了,Team里面的小伙伴组织了一个交换礼物的活动,我也奉命接下了写个小工具的任务。 需求 需求很简单,就是将 人员名单 和 礼物清单 排成两列,然后随机摇出新的匹对,这样每个人就得到了新的礼物。 算法 核心算法其实很简单,就是将数组进行随机乱序排列,代码如下 从后往前遍历,随机一个前面的数的坐标和当前数交换,所有位置的数字都交换完成 function shuffle(...
这篇文章源于同事问我的一个问题, async await 会不会创建新的线程? 当时直观的感觉是会创建,觉得 async await 只是语法糖,当前线程没有被 block,而后台肯定需要做事,所以必然会创建新的线程去执行任务才对。 然而查了文档,发现官方文档明确说明: async 和 await 关键字不会创建其他线程。 因为异步方法不会在其自身线程上运行,因此它不需要多线程。 参考...
端口被占用是指当你的可执行程序运行时需要在某个端口侦听时,发现该端口被其他程序给占用了,导致该应用程序无法执行。 如: jekyll 默认需要在端口 4000 侦听,当被占用的时候,会显示错误 Permission denied - bind for 127.0.0.1:4000 本地的 4000 端口被占用。 解决方法 查看端口的占用情况 # 查看端口占用...
最近查一些文章,涉及到了汇编语言,所以翻出一些资料复习一下。 我们平常学习的编程语言,如 C, C++, Java, C#,Python等等都是高级语言。我们也都知道,机器只能理解执行0101的代码,那高级语言如何转换为机器语言的? 其实高级语言是通过编译器转换为机器语言的,在编译过程中间会生成一个过渡性的语言,叫汇编语言,高级语言屏蔽了实现的细节,如对内存的操作,而汇编语言是低级语言,...