7daysgolang-GeeRPC 简析
7daysgolang-GeeRPC 简析
|
前言本文是记录在学习 GeeRPC 项目中的一些要点和概念,在代码部分只会给出最核心的代码,而一些外围代码,例如错误处理、一些并发细节、一些接口定义等都会被忽略。适合从一个宏观层面来理解 GeeRPC,因为 GeeRPC 原文实际上是从细节出发,难以从一个宏观视角理解,容易在「森林」中迷路。完整的源
HTTP 各版本简述(1.1/2/3)
HTTP 各版本简述(1.1/2/3)
|
HTTP 1.0HTTP 1.0 实际上作为最原始的版本,并没有使用多久就被 HTTP 1.1 代替了,后续实际上普遍认为 HTTP 1.1 是第一个广泛使用的 HTTP 版本。原始的 HTTP 由于没有长连接,也就是每个 HTTP 请求都是单独的 TCP 连接,这就会导致在请求多个小文件时延迟较高
HTTP 如何加密?
HTTP 如何加密?
|
为什么需要加密简单来说,HTTP 协议的内容是通过明文传递的,任何中间人都可以看到完整的信息,由此就导致了两种攻击:被动窃听攻击,报文的信息可以被抓包获取,从而泄露信息;主动攻击:中间者可以修改 HTTP 协议的内容,从而给客户端或服务端发送伪造的信息。所以需要一个机制来对 HTTP 的内容进行加密
Raft 详解
Raft 详解
|
共识算法Raft 是一种共识算法,共识算法是一种在分布式系统中非常重要的算法,他允许在一个节点集合中,即使某些节点挂了,对外的服务仍然还是一致的。最经典的模型是拜占庭问题,假设现在有几个将军和他们的军队围攻一个城市,这些将军必须通过传令兵来通信。他们需要对攻击还是撤退达成一致的决定,只有半数以上的军
Linux 网络编程入门:API 详解
Linux 网络编程入门:API 详解
|
字节序/网络序为了保证机器无关,需要保证在网络上传输的字节序是一致的。所以某些关键信息(例如 IP),需要经过字节序的转化,确保所有机器都能正常解析,网络上采用大端方式的字节序。所以有一系列的 API 负责字节序的转化,例如 htons,其中 h 代表 host,主机,n 代表 network,网络
JSON 入门
JSON 入门
|
JSON 入门什么是 JSONJSON 是一种纯字符串形式的数据,是一种开放的、轻量级的数据交换格式,广泛地应用在网络中进行数据传输。JSON 中只有两种方式表示数据:Object:键值对的集合,用 { } 定义,以 key: value 的形式表示键值对,键值对间用 , 分隔Array:值的有序集
《网络是怎样连接的》学习总结
《网络是怎样连接的》学习总结
|
前言这本书从一个比较宏观的视角,解释了一个网络包从发送到接收的全过程,虽然此前也学过《计算机网络》,但《计算机网络》对每个细节解释的更加详尽,在学习时容易迷失在具体的细节里,觉得枯燥无味,对理论知识也难以联系到实际。所以我觉得本书适合作为计算机网络的入门书籍,从宏观的角度对网络有一个直观的了解,对于
  • 1