跳至主要內容
阻塞非阻塞同步异步 IO
本文内容

1. IO 是什么?

IO 全称是 Input/Output,即输入输出,常见的 IO 有磁盘 IO,网路 IO 等。

当我们需要将内存中的数据持久化时,就需要向磁盘写数据,这个过程就是一次输出(从内存角度来说,将内存中的数据输出到磁盘,从磁盘角度来说则是输入了);反之,我们需要把数据从磁盘中取出时,就是一个输入的过程。这时磁盘就是一个 IO 设备,负责将数据具体的写入和读出。

当我们需要跨主机进行通信时,一个常用的方法就是使用网络通信,而网络通信过程中需要借助网络 IO 设备,比如网卡、路由器、交换机等,它们负责数据流的输入和输出。


AruNi_Lu大约 5 分钟计算机基础操作系统
如何让程序跑的更快
本文内容

前言

我们编写的程序最终都是要交给 CPU 来执行的,想让程序跑的更快,就要想办法让 CPU 执行的更快,利用率更高。

这里我就不谈增加 CPU 核数,或提高 CPU 主频这种改变硬件的优化方法了,毕竟得加钱嘛。我会从程序的角度,来分析什么样的程序在 CPU 上执行得更快、效率更高。

提示:本文需要一些 CPU 的前置知识,比如 飞速一般的 CPU Cache


AruNi_Lu大约 7 分钟计算机基础操作系统
键入 URL 到页面显示全过程
本文内容

前言

我们经常在浏览器的地址栏输入某个网站的网址,然后按下回车键,对应的页面就会呈现出来。那么你知道这中间都经历了什么吗?

先看一个简单的请求过程,过程中只涉及数据包在各个层级上的格式:

请求报文在经过各层时都会由不同的协议进行处理,下面就基于这些协议(和设备),来探究一个数据包的发送会经历些什么。


AruNi_Lu大约 11 分钟计算机基础网络
计算机网络模型
本文内容

1. 什么是网络模型

网络世界是错综复杂的,一条数据要经过许多设备和不同的协议栈,才能到达目的地。如果把所有的设备和相关的协议揉成一团,是非常不容易维护和发展的。所以专家们就抽象出 网络模型每层模型只负责自己的事情。这就将一个庞大复杂的网络,转化为了若干个较小的局部问题。

每一层模型只需对其上层和下层提供对应的服务或者接口,按照规定的协议进行数据传输,即可将整个网络串联起来,而且对某一层的设备或协议进行单独改进,也不会影响到其他层。


AruNi_Lu大约 7 分钟计算机基础网络
HTTPS 入门
本文内容

1. 什么是 HTTPS

HTTPS 全称是 HTTP over SSL/TLS,也就是运行在 SSL/TLS 协议上的 HTTP。

HTTPS 在通信之前会先通过 SSL/TLS 加密,所以它是一个 安全协议。同时,它也是建立在 TCP/IP 只上的,所以也是一个 可靠传输协议

所以 HTTPS 可以看成是 HTTP + SSL/TLS + TCP/IP。


AruNi_Lu大约 13 分钟计算机基础网络
HTTP 入门
本文内容

1. HTTP 是什么

HTTP 全称是 Hyper Text Transfer Protocol,意为超文本传输协议。它是 应用层 一个简单的 请求-响应 协议,通常运行在 TCP 之上(HTTP 3.0 之前)。

超文本传输协议可以拆分成以下三个部分:

  • 超文本:HTTP 传输的内容是「超文本」。常见的超文本就是 HTML(超文本标记语言),其中很多标签定义了图片、视频等链接;
  • 传输:HTTP 是基于 B/S 模式,用于浏览器—服务器 两端之间的数据传输
  • 协议:HTTP 是一种 网络协议,它有一套自己的 约定和规范

AruNi_Lu大约 14 分钟计算机基础网络