我们不生产知识,我们只是互联网的搬运工
HTTP到HTTPS的演化
HTTP 由于是明文传输,所以安全上存在以下三个风险:
踮起脚尖,看得更远
我们不生产知识,我们只是互联网的搬运工
HTTP 由于是明文传输,所以安全上存在以下三个风险:
在项目根目录下,创建pb_file/agent.proto
文件。
syntax = "proto3";
option go_package = ".;pb_file";
// agent/pb_file 两部分,第一部分生成的代码路径,第二部分是所属的包名
// 格式也可以是 agent;pb_file
package pb_file;
service AgentService {
rpc Ping (PingInfo) returns (PingResponse);
}
message PingInfo {
string User = 1;
}
message PingResponse {
bool Success = 1;
}
// 在 gRPC 的 Protocol Buffers(protobuf)定义文件(.proto 文件)中,
// 数字标识符(tag)用于标识字段的唯一标识符。它们是非负整数,可以在字段定义中指定。
// 通常情况下,我们会从 1 开始为字段分配数字标识符,并按照定义顺序逐个递增。
// 这样做的好处是,可以使消息的结构更加清晰,易于维护和扩展。
// 在将来,如果需要向消息中添加新的字段,可以向现有定义的字段之间插入新的字段,而不必破坏现有的客户端和服务器代码。
go env
命令,可以查询到GO相关的环境变量
在 Golang 中,有两个概念非常容易弄错,第一个就是 GoPath
,第二个则是 GoModule
,特别是随着Go版本的更新,好多文档没有及时更新,导致初学者对两者模糊不清,一头雾水。
Web应用程序是使用HTTP
协议传输数据的。HTTP
协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。要跟踪该会话,必须引入一种状态保持机制。
在并发编程中,经常会遇到多个线程访问同一个共享资源而这时候/我们就需要保证数据的“致性,那么就要用到锁的概念,给资源加上锁,拿到锁所有权的人才能够进行操作共享资源,没有拿到资源的线程需要等待,等其他线程使用完,释放锁。
几乎所有的教程都告诉你 int() 是 python 的内置函数,然而当你看到 int 的定义,发现它竟然是类
class int(object):
pass
哈希表是 key-value 类型的数据结构,通过关键码值直接进行访问。通过散列函数进行键和数组的下标映射从而决定该键值应该放在哪个位置,哈希表可以理解为一个键值需要按一定规则存放的数组 。
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
一个HTTP"客户端"是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。