命运是什么?
命是弱者的借口,运是强者的谦词。
往期导读
教材内容总结
1.客户端-服务器编程模型
- 一个服务器进程 -> 管理某种资源 -> 通过操作这种资源来为它的客户端提供某种服务
- 一个或多个客户端进程
基本操作:事务
-当一个客户端需要服务时,向服务器发送一个请求,发起一个事务。 - 服务器收到请求后,解释它,并以适当的方式操作它的资源。
- 服务器给客户端发送一个相应,并等待下一个请求。
- 客户端收到响应并处理它。
2.网络
(1)对主机而言:网络是一种I/O设备
从网络上接收到的数据从适配器经过I/O和存储器总线拷贝到存储器,典型地是通过DMA(直接存储器存取方式)传送。
(2)物理上:网络是一个按照地理远近组成的层次系统
最底层:LAN(局域网),最流行的是以太网,
以太网段
- 包括一些电缆和集线器。每根电缆都有相同的最大位带宽,集线器不加分辩地将一个端口上收到的每个位复制到其他所有的端口上,因此每台主机都能看到每个位。
- 每个以太网适配器都有一个全球唯一的48位地址,存储在适配器的非易失性存储器上。
- 一台主机可以发送一段位:帧,到这个网段内其它任何主机。每个帧包括一些固定数量的头部位(标识此帧的源和目的地址及帧长)和数据位(有效载荷)。每个主机都能看到这个帧,但是只有目的主机能读取。
- 使用电缆和网桥,多个以太网段可以连接成较大的局域网,称为桥接以太网。这些电缆的带宽可以是不同的。
- 多个不兼容的局域网可以通过叫做路由器的特殊计算机连接起来,组成一个internet互联网络。
(3)协议 - 互联网重要特性:由采用不同技术,互不兼容的局域网和广域网组成,并能使其相互通信。其中不同网络相互通信的解决办法是一层运行在每台主机和路由器上的协议软件,消除不同网络的差异。
协议提供的两种基本能力 - 命名机制:唯一的标示一台主机
- 传送机制:定义一种把数据位捆扎成不连续的片的同一方式
(4)全球IP因特网
TCP/IP协议族
混合使用套接字接口函数和UnixI/O函数进行通信
世界范围的主机集合
特性: - 主机集合被映射为一组32位的IP地址
- 这组IP地址被映射为一组称为因特网域名的标识符
- 因特网主机上的进程能够通过连接和任何其他主机上的进程
3.套接字
(1)函数
socket函数
connect函数
open_clientfd函数
bind函数
listen函数
open_listenfd函数
accept函数
4.Web服务器
(1)协议
Web 客户端和服务器之间的交互用的是一个基于文本的应用级协议,叫做 HTTP (Hypertext Transfer Protocol,超文本传输协议). HTTP 是一个简单的协议。一个 Web 客户端(即浏览器) 打开一个到服务器的因特网连接,并且请求某些内容。服务器响应所请求的内容,然后关闭连接。浏览器读取这些内容,并把它显示在屏幕上。
(2)内容
Web内容可以用一种叫做 HTML(Hypertext Markup Language,超文本标记语言)的语言来编写。一个 HTML 程序(页)包含指令(标记),它们告诉浏览器如何显示这页中的各种文本和图形对象。
Web 服务器以两种不同的方式向客户端提供内容:
取一个磁盘文件,并将它的内容返回给客户端。磁盘文件称为静态内容 (static content), 而返回文件给客户端的过程称为服务静态内容 (serving static content)。 运行一个可执行文件,并将它的输出返回给客户端。运行时可执行文件产生的输出称为态内容 (dynamic content),而运行程序并返回它的输出到客户端的过程称为服务动态内容 (serving dynamic content)。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 10/10 | |
第二周 | 0/0 | 1/2 | 10/20 | |
第三周 | 0/0 | 1/3 | 10/30 | |
第四周 | 0/0 | 1/4 | 10/40 | |
第五周 | 100/100 | 3/7 | 10/40 | |
第六周 | 150/200 | 2/9 | 10/50 | 安装Y86模拟器 |
第七周 | 150/200 | 2/11 | 10/60 | 安装kali与学会了代码托管 |
第八周 | 150/350 | 2/13 | 10/70 | 开始系统复习 |
第九周 | 120/470 | 2/15 | 10/70 | 掌握Unix/Linux系统级I/O:open close read write seek stat |
第十周 | 100/470 | 2/17 | 10/80 | 分析实践老师教的代码 |
第十一周 | 100/470 | 2/19 | 10/90 | 了解异常及其种类;理解进程和并发的概念;掌握进程创建和控制的系统调用及函数使用 |
第十二周 | 100/470 | 4/23 | 10/90 | 检查前三周代码 |