Hero Image
「HTTP」HTTP 9 种请求方式

HTTP简介 HTTP协议(HyperText Transfer Protocol, 超文本传输协议),是一个基于TCP/IP通信协议来传输数据。是用于从服务器传输超文本到本地浏览器的协议。HTTP使用同一资源标识符(Uniform Resource Identifiers, URL)来传输数据和建立连接。 HTTP协议工作于客户端-服务端(C-S)架构上。浏览器作为HTTP客户端通过URL向服务端发送请求,并获得返回数据。 HTTP特点: HTTP是无连接的: 无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。 HTTP是无状态的: HTTP是无状态协议。无状态是指协议对于事务处理灭有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次传输的数据量增大。 HTTP是媒体独立的: 任何数据类型都可以通过HTTP发送,客户端以及服务器要指定相同的MIME-type类型。媒体类型通常通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的。例如:Content-Type:text/HTML。通常只有广泛应用的格式才会获得一个 MIME Type,如果是某个客户端自己定义的格式,一般只能以 application/x- 开头。 Web-Browser <===> HTTP Server <===> CGI(Common GateWay Interface) Program <==>Database 客户端请求消息 请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成 服务器响应消息 响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。 不带Body 的请求 1# 请求消息 2GET /health HTTP/1.1 3Host: 127.0.0.1:8080 4User-Agent: curl/7.65.3 5Accept: */* 6 7# 返回消息 8HTTP/1.1 200 OK 9Content-Type: text/plain; charset=utf-8 10Date: Sat, 22 Aug 2020 17:56:22 GMT 11Content-Length: 2 12 13ok 带Body的请求 1# 请求消息 2GET /health?

Hero Image
Cryptography

对称加密 非对称加密 RSA 由于计算非常复杂,只适用于小数据加密。 HTTPS 非对称加密+对称加密 mTLS 数字证书 数字证书的颁发过程一般为: 用户首先产生自己的密钥对,并将公共密钥以及部分个人身份信息传送给认证中心。认证中心在核实身份后,执行一些必要的步骤,以确认请求确实是由用户发送来的。然后,认证中心将发给用户一个数字证书。该证书内包含用户的个信息和他的公钥信息。同时还附有认证中心的签名信息。 加密通信 Alice [Decode message by Alice’s private key] <—- send message — [message encrypted with Alice’s public key] Bob 公钥加密,私钥解密 数字签名 Bob 给Alice发送的文件需要携带数字签名。 Bob使用自己的私钥 以及文件的哈希值, 通过签名算法 计算出 数字签名 Alice 收到文件后, 通过文件哈希值,Bob的数字签名,以及Bob的公钥 进行签名验证 数字签名主要有以下三个作用:认证,确认收到的数据的身份信息;防止抵赖,文件一旦签名后不能反悔;防止篡改,保证文件在传输过程中的完整性。 比特币其实就是数字签名 X.509 数字证书 证书版本信息 证书的序列号,每个证书都有一个唯一的证书序列号 证书所使用的签名算法; 证书的发行机构名称,命名规则一般采用X.500格式; 证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围1950-2049; 证书所有人的名称,命名规则一般采用X.500格式; 证书所有人的公开密钥; 证书发行者对证书的签名; Openssl 创建一个 root certificates 和 private key 用来为服务签署 certificates 1openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -subj '/O=example Inc.