随笔分类 - 【210】计算机网络
摘要:微服务与远程方法调用的引入 RPC 指的是 Remote Procedure Call,即远程方法调用(也叫远程服务调用、远程过程调用),这也是微服务架构的前导篇,因为微服务里面远程服务之间就是通过 RPC 协议进行数据传输的。 在介绍 RPC 协议之前,我们先厘清几个概念:单体应用、微服务应用、本
阅读全文
摘要:视频编码与直播的实现原理介绍 为什么要对视频进行编码 流媒体协议主要用于流媒体视频的直播和点播,在介绍流媒体协议之前,先给大家介绍下视频的压缩和编码机制。 说到视频播放,其实就是快速播放一系列连续的图片而已,其中的每一张图片称之为一帧,只要每秒钟帧的数量足够多,也即播放得足够快,比如每秒 30 帧,
阅读全文
摘要:从 Ajax 到 WebSocket 背景 在建立 HTTP 标准规范的时候,设计者的初衷主要是想把 HTTP 当做传输静态 HTML 文档的协议,但是随着互联网的发展,Web 应用的用途更加多样性,逐渐诞生了电商网站(如淘宝、亚马逊)、社交网络(如Facebook、Twitter)等功能更加复杂的
阅读全文
摘要:HTTP 认证概述 HTTP 协议本身是无状态的,服务器并不知道客户端发起请求的用户身份,为了搞清楚对方是谁,就需要客户端自报家门。客户端表明自己身份的方式主要有以下几种: 密码 令牌(可以看作是动态生成的密码,多用于 API 认证) 数字证书 生物认证(比如指纹、刷脸) 而客户端上报身份之后,服务
阅读全文
摘要:HTTP的缺点 HTTP 协议设计的初衷就是简单方便,但是随着 Web 的发展和交互的复杂,也引入了一些安全性问题: 通信使用明文,内容可能会被窃听:HTTP 协议本身不具备加密功能,所以无法对通信整体(请求和响应的内容)进行加密,即 HTTP 报文使用明文方式发送。按照 TCP/IP 协议族的工作
阅读全文
摘要:CDN 概述 前面我们介绍了 HTTP 缓存的原理,以及基于浏览器缓存和网关缓存来实现 HTTP 缓存,浏览器缓存由于其局限性并不是主流的缓存实现方案,而网关缓存虽然解决了浏览器缓存的问题,但是所有请求仍然要发送到服务器部署的数据中心,而我们的用户是分散在天南海北的,距离数据中心越远网络延迟越大,能
阅读全文
摘要:首先需要声明的是,我们这里讨论的缓存是基于 HTTP 协议实现的缓存,这些缓存通常存储在 HTTP 客户端,通过请求头或响应头来协商和标识,而不是那些存储在 Memcached 或者 Redis 服务器中的缓存,后者更多用来缓存从数据库中获取的数据。 为什么需要缓存 在通过客户端访问服务器时,对于某
阅读全文
摘要:HTTP 协议的请求和响应报文中必定包含 HTTP 首部,首部内容为客户端和服务器分别处理请求和响应提供所需要的信息,对于客户端普通用户来说,这些信息中的大部分内容都无须亲自查看。 而 HTTP 报文首部又分为起始行和首部字段两部分,请求报文的起始行包含 HTTP 请求方法、URL资源、客户端 HT
阅读全文
摘要:HTTP 报文简介 用于 HTTP 协议交互的信息被称为 HTTP 报文,请求端(客户端)发起的 HTTP 报文叫做请求报文,响应端(服务器端)发出的 HTTP 报文叫做响应报文。请求报文会向 Web 服务器请求一个动作,响应报文会将请求的处理结果返回给客户端。 HTTP 报文本身是由多行(用CR+
阅读全文
摘要:前面介绍了 Web 的由来与兴起,以及承载 Web 通信的 HTTP 协议的总体概述,接下来我们将围绕 HTTP 协议的细节具体展开讨论,包括 HTTP 报文、请求、响应、Web 服务器、HTTPS、认证、构建 Web 内容的技术以及 Web 安全等,首先我们从 Web 资源的入口 —— URL 开
阅读全文
摘要:HTTP MDN web docs https://developer.mozilla.org/zh-CN/docs/Web/HTTP MDN Web Docs(旧称Mozilla Developer Network、Mozilla Developer Center,简称MDN)是一个汇集众多Moz
阅读全文
摘要:电子邮件起源 在互联网中,提供电子邮件服务的协议叫 SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),SMTP 为了实现高效发送邮件,在传输层上使用了 TCP 协议。 早期的电子邮件就是通过通信双方建立 TCP 连接实现的,发送端写好邮件后,会保存到硬盘,然后
阅读全文
摘要:FTP 的英文全称是 File Transfer Protocol,意为文件传输协议,也就是在两个相连的计算机(通常是本地主机与服务器)之间进行文件传输的协议 FTP 底层原理 FTP 使用两个 TCP 连接实现文件传输:一个 TCP 连接用于控制,另一个 TCP 连接用于数据传输。 控制主要包含用
阅读全文
摘要:远程登录协议 通过 TELNET 模拟实现 HTTP 和 SMTP 客户端 所谓远程登录指的是从本地计算机登录到网络另一端的计算机(通常是服务器或者云主机实例),远程登录成功后,就可以直接使用这些主机上的应用,还可以对这些计算机进行参数配置。 适用于远程登录的协议主要有两种:TELNET 和 SSH
阅读全文
摘要:应用层协议概述 前面介绍的 IP 协议、TCP 协议和 UDP 协议分别属于网络层和传输层协议,都是属于网络通信中的基础部分,接下来,要开始介绍网络通信中应用层协议,应用层协议非常丰富,也是我们日常打交道最多的部分: 不论是我们前面介绍过的 DNS 域名解析协议,还是我们日常 Web 网站依赖的 H
阅读全文
摘要:套接字底层原理 套接字简介 位于应用层的应用程序在基于 TCP 协议或 UDP 协议进行通信时,需要用到操作系统提供的类库,这种类库一般称为 API(Application Programming Interface,应用编程接口)。 使用 TCP 或 UDP 时,又会广泛使用到 Socket(套接
阅读全文
摘要:TCP 简介与报文格式 TCP 简介 前面学院君已经介绍过传输层有两个具有代表性的协议,分别是 UDP 协议和 TCP 协议,上一篇我们已经介绍过 UDP 协议,它是面向无连接的不可靠传输协议,但是没有复杂的设计也就意味着比较简单高效。今天我们开始介绍 TCP 协议,与 UDP 协议不同,TCP 协
阅读全文
摘要:UDP 协议简介 UDP 的全称是 User Datagram Protocol,中文名是用户数据报协议。 UDP 提供面向无连接的通信服务,是不具有可靠性的数据报协议。 UDP 虽然可以确保发送消息的大小,但不能保证消息一定会到达,传输途中如果出现丢包,UDP 不负责进行重发。因此,应用有时候会根
阅读全文
摘要:传输层的定义及通信处理 我们前面介绍 IP 报文首部格式的时候提到其中有一个协议字段(Protocol),用来标识网络层的上一层所采用的是哪一种传输层协议,根据这个字段的协议号就可以识别 IP 传输的数据部分究竟是 TCP 的内容还是 UDP 的内容。 同样,传输层的 TCP 和 UDP,为了识别自
阅读全文
摘要:静态路由与动态路由 IP 地址与路由控制 简单来说,互联网就是通过路由器连接的网络组合而成,为了让数据包正确到达目标主机,路由器必须在途中进行正确的转发。这种向正确的方向转发数据所进行的处理就叫做路由控制或者简称路由。 路由器根据路由控制表(可以简称为路由表)转发数据包,它根据所收到的数据包中目标主
阅读全文