散列 哈希 Hashing介绍
作为一名程序员,您每天都会使用哈希函数。它们在数据库中用于优化查询,在数据结构中用于使速度更快,在安全性中用于保证数据安全。几乎每次与技术的交互都会以某种方式涉及哈希函数。
哈希函数是基础函数,而且无处不在。…
记录-交流-Web开发知识分享
作为一名程序员,您每天都会使用哈希函数。它们在数据库中用于优化查询,在数据结构中用于使速度更快,在安全性中用于保证数据安全。几乎每次与技术的交互都会以某种方式涉及哈希函数。
哈希函数是基础函数,而且无处不在。…
跨站点请求伪造 (CSRF) 是一种攻击,当恶意网站、电子邮件、博客、即时消息或程序导致用户的 Web 浏览器在用户经过身份验证时在受信任的站点上执行不需要的操作时,就会发生这种攻击。CSRF 攻击之所以有效,是因为浏览器请求自动包含所有 cookie(包括会话 cookie)。因此,如果用户通过了站点的身份验证,站点将无法区分合法的授权请求和伪造的经过身份验证的请求。当使用正确的授权时,这种攻击就会被阻止,这意味着需要一个挑战-响应机制来验证请求者的身份和权限。
成功的 CSRF 攻击的影响仅限于易受攻击的应用程序暴露的功能和用户的权限。例如,这种攻击可能会导致资金转移、更改密码或使用用户的凭据进行购买。实际上,攻击者使用 CSRF 攻击使目标系统在受害者不知情的情况下通过受害者的浏览器执行功能,至少在未经授权的交易提交之前是这样。…
标头名称不区分大小写。
来自 RFC 2616 - “超文本传输协议 -- HTTP/1.1”,第 4.2 节 “消息标头”:
每个标头字段由一个名称后跟冒号 (“:”) 和字段值组成。字段名称不区分大小写。
更新的 RFC 7230 在此部分未列出 RFC 2616 的任何更改。…
CSRF 保护有多种方法。
传统方式(“同步器令牌”模式)通常涉及为每个请求设置唯一的有效令牌值,然后在随后发送请求时验证该唯一值。通常通过设置隐藏表单字段来完成。令牌值通常是短暂的并与该会话相关联,因此如果黑客尝试重用他们之前在页面上看到的值,或者尝试猜测该值,他们可能会失败。因此,只有来自您的应用程序的请求才有效,来自应用程序/域外部的伪造请求(也称为跨站点请求伪造)将会失败。…
许多组织在其发展过程中达到了这样一个阶段,即曾经为他们提供良好服务的单一应用程序开始阻碍他们的发展。也许业务需要现有架构无法支持的新功能,或者需要更灵活的方法来存储和访问应用程序的数据。团队成长、相互冲突的性能需求和新的竞争性技术也会对单一的代码库构成挑战。采用事件驱动的微服务架构可以帮助企业应对这些挑战。…
JSON Web Token (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。此信息可以验证和信任,因为它是经过数字签名的。JWT 可以使用密钥(使用 HMAC算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名。
尽管可以对 JWT 进行加密以在各方之间提供保密性,但我们将重点关注已签名的令牌。签名令牌可以验证其中包含的声明的完整性,而加密令牌可以向其他方隐藏这些声明。当使用公钥/私钥对对令牌进行签名时,签名还证明只有持有私钥的一方才是签名者.
以下是 JSON Web Tokens
免费开源、高性能、分布式内存对象缓存系统, 本质上是通用的,但旨在通过减轻数据库负载来加速动态 Web 应用程序d.
Memcached ( memcache ) 是一种内存中的键值存储,用于缓存来自数据库调用、API 调用或页面呈现结果的任意小块数据(字符串、对象).
Memcached简单而强大. 其简单的设计促进了快速部署、易于开发,并解决了大数据缓存面临的许多问题。其 API 适用于大多数流行语言.…
GRPC是一个高性能、通用的开源RPC框架,基于底层HTTP/2协议标准
和协议层Protobuf序列化协议
开发,支持众多的开发语言。
gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。
gRPC使用protocol buffers
作为接口描述语言(IDL)以及底层的信息交换格式
https://www.colabug.com/4616436.html
简单rpc ,这就是一般的rpc调用,一个请求对象对应一个返回对象
proto语法:
gRPC是rpc框架中的一种,是rpc中的大哥
是一个高性能,开源和通用的RPC框架,基于Protobuf序列化协议开发,且支持众多开发语言。
面向服务端和协议端,基于http/2设计,带来诸如双向流,流控,头部压缩,单TCP连接上的多路复用请求等特性。这些特性使得其在移动设备上表现的更好,更省电和节省空间。
在 gPRC 里客户端可以向调用本地对象一样直接调用另一台不同机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。
与许多RPC系统类似,gRPC也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口。并运行一个gRPC服务器来处理客户端调用。在客户端拥有一个存根能够向服务端一样的方法。
用于数据传输的二进制分帧
HTTP/2
采用二进制格式传输协议,而非HTTP/1.x
的文本格式。
多路复用
HTTP/2
支持通过同一个连接发送多个并发的请求。
而HTTP/1.x
虽然通过pipeline
也能并发请求,但多个请求之间的响应依然会被阻塞。
服务端推送
服务端推送是一种在客户端请求之前发送数据的机制。在HTTP/2
中,服务器可以对客户端的一个请求发送多个响应。而不像HTTP/1.X
一样,只能通过客户端发起request
,服务端才产生对应的response
。
减少网络流量的头部压缩。
HTTP/2
对消息头进行了压缩传输,能够节省消息头占用的网络流量。至于如何压缩的,可以查看这篇:HPACK: Header Compression for
近期评论