计算机基础知识
1. 计算机软硬件
1.1. 计算机组成
- 硬件系统:包括中央处理器(CPU)、内存、存储设备(硬盘、固态硬盘等)、输入设备(键盘、鼠标等)、输出设备(显示器、打印机等)。
- 软件系统:分为系统软件(如操作系统、驱动程序等)和应用软件(如办公软件、游戏软件等)。
1.1.1. 计算机组成之硬件系统
1.1.1.1. 中央处理器(CPU)
- 定义与作用:中央处理器是计算机的核心部件,它负责执行计算机程序中的指令,进行算术运算、逻辑运算和数据处理等任务。可以说,CPU 是计算机的 "大脑",它的性能直接决定了计算机的运行速度和处理能力。
- 组成部分:
-
- 控制单元:负责控制计算机的各个部件协同工作,包括指令的读取、译码和执行等过程。
- 算术逻辑单元(ALU):执行算术运算(如加法、减法、乘法、除法等)和逻辑运算(如与、或、非等)。
- 寄存器:用于暂时存储数据和指令,提高 CPU 的运行效率。
- 性能指标:
-
- 主频:即 CPU 的时钟频率,单位为赫兹(Hz)。主频越高,CPU 的运算速度越快。例如,3.0GHz 的 CPU 比 2.0GHz 的 CPU 在相同时间内可以执行更多的指令。
- 核心数:现代 CPU 通常具有多个核心,每个核心都可以独立执行指令。核心数越多,CPU 在多任务处理方面的能力就越强。例如,四核 CPU 可以同时处理四个任务,而八核 CPU 可以同时处理八个任务。
- 缓存:CPU 内部的高速存储器,用于存储频繁使用的数据和指令。缓存分为一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)等,缓存容量越大,CPU 的性能越好。
1.1.1.2. 内存
- 定义与作用:内存也称为主存储器,是计算机中用于暂时存储数据和程序的部件。它与 CPU 直接进行数据交换,速度比存储设备快得多。内存中的数据在计算机断电后会丢失,因此它主要用于存储正在运行的程序和数据。
- 类型:
-
- 随机存取存储器(RAM):是最常见的内存类型,它可以随机访问其中的任何一个存储单元,读写速度快。计算机在运行程序时,会将程序和数据加载到 RAM 中进行处理。
- 只读存储器(ROM):ROM 中的数据在制造时就被写入,并且只能读取,不能修改。它通常用于存储计算机的启动程序和基本输入输出系统(BIOS)等。
- 性能指标:
-
- 容量:内存的容量通常以字节(B)为单位,常见的有 4GB、8GB、16GB 等。容量越大,计算机可以同时运行的程序和处理的数据就越多。
- 频率:内存的工作频率越高,数据传输速度就越快。例如,DDR4-2400 的内存频率为 2400MHz,比 DDR4-2133 的内存速度更快。
1.1.1.3. 存储设备
1.1.1.3.1. 硬盘
- 定义与作用:硬盘是计算机中用于长期存储数据的设备。它具有较大的存储容量,可以存储操作系统、应用程序、文档、图片、视频等各种数据。硬盘中的数据在计算机断电后不会丢失。
- 类型:
-
- 机械硬盘(HDD):由磁盘、磁头、马达等部件组成,通过磁盘的旋转和磁头的移动来读取和写入数据。机械硬盘的存储容量大,价格相对较低,但读写速度较慢。
- 固态硬盘(SSD):使用闪存芯片作为存储介质,没有机械部件,因此读写速度快、噪音小、抗震性好。固态硬盘的价格相对较高,但随着技术的发展,其价格逐渐下降,已经成为越来越多用户的选择。
- 性能指标:
-
- 容量:硬盘的存储容量通常以千兆字节(GB)或太字节(TB)为单位。用户可以根据自己的需求选择不同容量的硬盘。
- 读写速度:硬盘的读写速度是衡量其性能的重要指标。固态硬盘的读写速度通常比机械硬盘快得多,可以大大提高计算机的启动速度和程序运行速度。
1.1.1.3.2. 其他存储设备
- 光盘:包括 CD、DVD 和蓝光光盘等,用于存储数据和多媒体内容。光盘的存储容量较大,但读写速度相对较慢,并且需要使用光盘驱动器进行读取和写入。
- 闪存盘(U 盘):一种便携式存储设备,使用闪存芯片作为存储介质。U 盘的体积小、容量大、读写速度快,便于携带和使用。
1.1.1.4. 输入设备
1.1.1.4.1. 键盘
- 定义与作用:键盘是计算机最常用的输入设备之一,用于输入文字、数字、符号等信息。用户可以通过键盘向计算机发送指令和数据,进行各种操作。
- 类型:
-
- 机械键盘:采用机械开关作为按键触发机制,手感好、响应速度快,适合游戏玩家和专业打字员使用。
- 薄膜键盘:采用薄膜开关作为按键触发机制,价格便宜、轻便,适合普通用户使用。
1.1.1.4.2. 鼠标
- 定义与作用:鼠标是一种用于控制计算机屏幕上光标的输入设备。用户可以通过移动鼠标、点击鼠标按钮等操作来选择菜单、打开文件、拖动窗口等。
- 类型:
-
- 有线鼠标:通过数据线与计算机连接,传输稳定,价格相对较低。
- 无线鼠标:使用无线技术与计算机连接,摆脱了数据线的束缚,使用更加方便。但无线鼠标需要电池供电,并且可能会受到信号干扰。
1.1.1.4.3. 其他输入设备
- 触摸屏:在一些移动设备和触摸屏电脑上,用户可以通过触摸屏幕来进行输入操作。触摸屏具有直观、方便的特点,但精度相对较低。
- 扫描仪:用于将纸质文档、图片等转换为数字图像,输入到计算机中进行处理。
- 摄像头:可以拍摄照片和视频,作为输入设备用于视频会议、图像识别等应用。
1.1.1.5. 输出设备
1.1.1.5.1. 显示器
- 定义与作用:显示器是计算机的主要输出设备之一,用于显示计算机处理后的图像和文字信息。用户可以通过显示器查看计算机的运行状态、操作结果等。
- 类型:
-
- CRT 显示器:采用阴极射线管技术,体积大、重量重、功耗高,但显示效果较好。目前已经逐渐被液晶显示器所取代。
- 液晶显示器(LCD):采用液晶显示技术,具有轻薄、节能、显示效果好等特点。液晶显示器分为 TN 屏、IPS 屏、VA 屏等不同类型,各有优缺点。
- OLED 显示器:采用有机发光二极管技术,具有自发光、对比度高、响应速度快等特点。OLED 显示器目前主要应用于高端手机、电视等领域。
- 性能指标:
-
- 分辨率:显示器的分辨率越高,显示的图像就越清晰。常见的分辨率有 1920×1080(全高清)、2560×1440(2K)、3840×2160(4K)等。
- 刷新率:显示器的刷新率越高,显示的图像就越流畅。常见的刷新率有 60Hz、144Hz、240Hz 等。
1.1.1.5.2. 打印机
- 定义与作用:打印机是一种用于将计算机处理后的文字、图像等信息输出到纸张上的设备。打印机可以分为喷墨打印机、激光打印机和针式打印机等不同类型。
- 类型:
-
- 喷墨打印机:采用喷墨技术,将墨水喷射到纸张上形成图像和文字。喷墨打印机价格便宜、打印质量高,但打印速度较慢,耗材成本较高。
- 激光打印机:采用激光扫描技术,将墨粉吸附到纸张上形成图像和文字。激光打印机打印速度快、打印质量高、耗材成本低,但价格相对较高。
- 针式打印机:采用针式打印头,通过打印针撞击色带在纸张上形成图像和文字。针式打印机主要用于打印票据、快递单等多联纸张,具有打印速度慢、噪音大、打印质量低等特点。
1.1.2. 计算机组成之软件系统
1.1.2.1. 系统软件
1.1.2.1.1. 操作系统
- 定义与作用:操作系统是计算机系统中最基本的软件,它管理和控制计算机的硬件和软件资源,为用户提供一个方便、高效的操作环境。操作系统的主要功能包括进程管理、内存管理、文件管理、设备管理等。
- 常见操作系统:
-
- Windows:由微软公司开发的操作系统,广泛应用于个人电脑和服务器领域。Windows 操作系统具有图形化界面、易用性好、软件兼容性强等特点。
- macOS:由苹果公司开发的操作系统,主要应用于苹果电脑和移动设备上。macOS 操作系统具有简洁美观、稳定性高、安全性好等特点。
- Linux:一种开源的操作系统,具有高度的可定制性和安全性,广泛应用于服务器、超级计算机等领域。
1.1.2.1.2. 驱动程序
- 定义与作用:驱动程序是一种软件,它负责将计算机的硬件设备与操作系统连接起来,使操作系统能够识别和使用硬件设备。例如,显卡驱动程序可以使操作系统正确地识别显卡,并发挥显卡的最佳性能。
- 安装与更新:通常,在安装新的硬件设备时,需要安装相应的驱动程序。此外,为了保证硬件设备的正常运行和性能发挥,还需要定期更新驱动程序。可以通过设备制造商的官方网站或操作系统的自动更新功能来获取和安装驱动程序。
1.1.2.2. 应用软件
1.1.2.2.1. 办公软件
- 定义与作用:办公软件是为了满足办公需求而开发的软件,主要包括文字处理软件、电子表格软件、演示文稿软件等。办公软件可以帮助用户提高工作效率,实现文档编辑、数据处理、演示汇报等功能。
- 常见办公软件:
-
- Microsoft Office:由微软公司开发的办公软件套装,包括 Word、Excel、PowerPoint 等软件。Microsoft Office 具有功能强大、兼容性好等特点,是目前最广泛使用的办公软件之一。
- WPS Office:由金山软件公司开发的办公软件套装,包括 Writer、Spreadsheets、Presentation 等软件。WPS Office 具有免费、体积小、功能实用等特点,受到了很多用户的欢迎。
1.1.2.2.2. 游戏软件
- 定义与作用:游戏软件是为了娱乐目的而开发的软件,它可以在计算机上运行各种游戏,让用户体验不同的游戏乐趣。游戏软件的类型包括动作游戏、角色扮演游戏、策略游戏、射击游戏等。
- 开发与平台:游戏软件的开发需要专业的游戏开发团队和技术,包括游戏引擎开发、美术设计、程序编写等。游戏软件可以在不同的平台上运行,如个人电脑、游戏主机、移动设备等。
1.1.2.2.3. 其他应用软件
- 图形图像软件:如 Adobe Photoshop、CorelDRAW 等,用于图像编辑、设计和处理。
- 视频音频软件:如 Adobe Premiere Pro、Audacity 等,用于视频编辑、音频处理和制作。
- 编程开发软件:如 Visual Studio、Eclipse 等,用于软件开发和编程。
1.2. 操作系统
- 功能:管理计算机的硬件资源和软件资源,为用户提供一个方便、高效的操作环境。
- 常见操作系统:Windows、macOS、Linux 等。
1.2.1. 操作系统的功能
1.2.1.1. 管理硬件资源
- 中央处理器(CPU)管理:操作系统负责合理分配 CPU 的时间片,使多个程序能够并发执行。通过进程调度算法,决定哪个程序在何时获得 CPU 的使用权,以确保各个程序都能得到公平的执行机会,避免某个程序独占 CPU 导致其他程序无法运行。例如,在多任务操作系统中,当用户同时运行多个应用程序时,操作系统会根据各个程序的优先级和需求,动态地分配 CPU 时间,使得用户感觉这些程序似乎在同时运行。
- 内存管理:操作系统负责管理计算机的内存空间,确保程序能够正确地加载到内存中运行,并在程序不需要时释放内存。它采用虚拟内存技术,将硬盘空间作为内存的扩展,使得程序可以使用比实际物理内存更大的地址空间。例如,当一个程序需要更多的内存时,操作系统可以将部分不常用的内存页面存储到硬盘上的虚拟内存中,为当前运行的程序腾出更多的物理内存空间。
- 存储设备管理:操作系统管理硬盘、固态硬盘等存储设备,负责文件的存储、读取和删除等操作。它提供文件系统,将存储设备组织成层次结构,方便用户对文件进行管理。例如,操作系统可以将存储设备划分为不同的分区,每个分区可以采用不同的文件系统,如 NTFS、FAT32、EXT4 等。用户可以在文件系统中创建文件夹、存储文件,并通过文件名来访问和管理这些文件。
- 输入输出设备管理:操作系统负责管理键盘、鼠标、显示器、打印机等输入输出设备,为程序提供统一的接口来访问这些设备。它处理设备的中断请求,协调设备与 CPU 之间的数据传输。例如,当用户在键盘上输入字符时,操作系统会接收键盘的中断请求,将输入的字符传递给正在运行的程序。当程序需要输出到显示器时,操作系统会将程序的输出数据发送到显卡,由显卡将数据显示在显示器上。
1.2.1.2. 管理软件资源
- 程序执行管理:操作系统负责程序的加载、执行和终止。它为程序提供运行环境,包括分配内存、设置寄存器等。当用户启动一个程序时,操作系统会将程序的代码和数据从存储设备加载到内存中,并为程序创建一个进程。进程是程序的一次执行过程,它包含了程序的代码、数据、堆栈等信息。操作系统会为进程分配 CPU 时间片,使其能够执行。当程序执行完毕或出现错误时,操作系统会终止进程,释放其所占用的资源。
- 文件管理:除了对存储设备上的文件进行管理外,操作系统还负责文件的权限管理、备份和恢复等。它可以设置文件的访问权限,如只读、读写、执行等,以保护文件的安全性。操作系统还可以定期对重要文件进行备份,以防止数据丢失。当文件损坏或丢失时,操作系统可以通过备份文件进行恢复。
- 用户界面管理:操作系统为用户提供了图形用户界面(GUI)或命令行界面(CLI),方便用户与计算机进行交互。图形用户界面通常包括窗口、菜单、图标等元素,用户可以通过鼠标和键盘进行操作。命令行界面则需要用户输入命令来执行各种操作。例如,Windows 操作系统采用图形用户界面,用户可以通过点击图标、菜单来启动程序、管理文件等。Linux 和 macOS 操作系统既提供图形用户界面,也支持命令行界面,用户可以根据自己的需求选择不同的操作方式。
1.2.1.3. 提供方便、高效的操作环境
- 多任务处理:操作系统支持多任务处理,允许用户同时运行多个程序。用户可以在不同的程序之间切换,提高工作效率。例如,用户可以在一边编辑文档,一边听音乐,一边浏览网页,而不需要关闭一个程序再打开另一个程序。
- 资源共享:操作系统允许多个程序共享计算机的硬件和软件资源,提高资源的利用率。例如,多个程序可以共享内存、CPU、硬盘等资源,避免资源的浪费。
- 安全性和稳定性:操作系统提供了安全机制,保护计算机系统和用户数据的安全。它可以防止未经授权的访问、病毒感染、恶意软件攻击等。同时,操作系统还负责维护系统的稳定性,当程序出现错误或崩溃时,能够及时进行处理,避免影响其他程序的运行。例如,Windows 操作系统的用户账户控制(UAC)功能可以防止未经授权的程序对系统进行更改,macOS 的 Gatekeeper 功能可以防止恶意软件的安装。Linux 操作系统的权限管理机制可以严格控制用户对系统资源的访问。
1.2.2. 常见操作系统介绍
1.2.2.1. Windows
- 简介:由微软公司开发的操作系统,是世界上最广泛使用的个人计算机操作系统之一。它具有图形用户界面友好、软件兼容性强、易用性高等特点。
- 版本历史:从早期的 Windows 95、Windows 98、Windows 2000 到后来的 Windows XP、Windows Vista、Windows 7、Windows 8 和 Windows 10,以及最新的 Windows 11,微软不断对 Windows 操作系统进行更新和改进。每个版本都在性能、功能和安全性方面有所提升。
- 特点:
-
- 广泛的软件支持:Windows 平台上有大量的软件可供选择,包括办公软件、游戏、图形设计软件等。这使得用户可以根据自己的需求轻松找到适合的软件。
- 易用性:Windows 的图形用户界面设计简洁明了,用户可以通过鼠标和键盘轻松操作。它还提供了丰富的帮助文档和教程,方便用户学习和使用。
- 游戏支持:许多游戏开发商都针对 Windows 平台进行优化,使得 Windows 成为游戏玩家的首选操作系统之一。
- 企业级应用:Windows Server 系列是专门为企业级应用设计的操作系统,提供了强大的服务器管理功能,如域管理、文件共享、打印服务等。
1.2.2.2. macOS
- 简介:由苹果公司开发的操作系统,主要运行在苹果公司的 Mac 电脑上。它以其简洁美观的界面、高度的稳定性和安全性以及与苹果硬件的完美结合而受到用户的喜爱。
- 版本历史:macOS 的发展经历了多个阶段,从早期的 Mac OS 到后来的 Mac OS X,再到现在的 macOS。每个版本都在功能和性能方面有所提升,同时保持了苹果一贯的设计风格。
- 特点:
-
- 简洁美观的界面:macOS 的界面设计简洁大方,采用了扁平化的设计风格,图标和字体都非常清晰美观。它还提供了丰富的主题和壁纸,用户可以根据自己的喜好进行个性化设置。
- 高度的稳定性和安全性:macOS 基于 Unix 内核,具有高度的稳定性和安全性。它很少出现系统崩溃和病毒感染等问题,为用户提供了可靠的操作环境。
- 与苹果硬件的完美结合:macOS 与苹果的硬件设备(如 MacBook、iMac、Mac Pro 等)完美结合,能够充分发挥硬件的性能。例如,苹果的触控板手势操作非常方便,用户可以通过手势来实现各种操作,提高工作效率。
- 丰富的创意软件:macOS 上有许多优秀的创意软件,如 Final Cut Pro、Logic Pro、Photoshop 等,这些软件为专业的设计师、摄影师和音乐制作人提供了强大的创作工具。
1.2.2.3. Linux
- 简介:一种开源的操作系统,它的内核由 Linus Torvalds 开发。Linux 具有高度的可定制性、稳定性和安全性,被广泛应用于服务器、超级计算机、嵌入式系统等领域。
- 版本历史:Linux 有许多不同的发行版,每个发行版都有自己的特点和用途。常见的发行版有 Ubuntu、Debian、Fedora、CentOS 等。这些发行版在软件包管理、用户界面、支持的硬件平台等方面有所不同。
- 特点:
-
- 开源免费:Linux 的源代码是公开的,任何人都可以免费使用、修改和分发。这使得 Linux 吸引了大量的开发者和用户,他们可以根据自己的需求对 Linux 进行定制和优化。
- 高度的可定制性:用户可以根据自己的需求选择不同的发行版和软件包,定制自己的操作系统。Linux 支持命令行界面和图形用户界面,用户可以根据自己的喜好进行选择。
- 稳定性和安全性:Linux 具有高度的稳定性和安全性,很少出现系统崩溃和病毒感染等问题。它的内核经过了严格的测试和优化,能够在各种恶劣的环境下稳定运行。
- 服务器领域的广泛应用:Linux 在服务器领域占据了重要的地位,许多企业和组织都选择 Linux 作为服务器操作系统。它具有高效的性能、可靠的稳定性和强大的网络功能,能够满足企业级应用的需求。
1.3. 计算机网络基础
- 网络类型:局域网(LAN)、广域网(WAN)、互联网等。
- 网络协议:如 TCP/IP 协议,包括 IP 地址、子网掩码、网关等概念。
1.3.1. 计算机网络基础之网络类型
1.3.1.1. 局域网(LAN,Local Area Network)
- 定义:局域网是在一个局部的地理范围内(如一个学校、工厂或办公室),将各种计算机、外部设备和数据库等互相连接起来组成的计算机通信网。
- 特点:
-
- 覆盖范围小:通常局限在几千米的范围之内。例如,一个小型企业的办公室或者一个大学校园的网络都可以是局域网。
- 传输速度快:由于覆盖范围小,数据传输所经过的物理距离短,信号衰减较小,因此传输速度相对较快。一般来说,局域网的传输速度可以达到每秒几十兆比特甚至更高。
- 成本较低:建设和维护局域网的成本相对较低。因为其规模较小,所需的设备和线缆数量较少,并且不需要像广域网那样使用昂贵的远程通信设备。
- 安全性较高:相对广域网和互联网,局域网更容易进行安全管理。可以通过设置访问控制、防火墙等措施来限制外部用户的访问,保护内部网络的安全。
- 应用场景:企业办公网络、学校校园网、家庭网络等都是常见的局域网应用场景。在企业中,员工可以通过局域网共享文件、打印机等资源,提高工作效率;在学校,师生可以通过校园网访问校内的教学资源和图书馆数据库。
1.3.1.2. 广域网(WAN,Wide Area Network)
- 定义:广域网是连接不同地区的局域网或城域网的计算机通信网络,可以跨越很大的地理范围,甚至可以覆盖全球。
- 特点:
-
- 覆盖范围广:广域网可以连接不同城市、不同国家甚至全球范围内的计算机网络。例如,互联网就是一个全球最大的广域网。
- 传输速度相对较慢:由于数据传输需要经过多个网络节点和不同的通信链路,距离较远,信号衰减较大,因此传输速度相对局域网较慢。但是,随着技术的不断发展,广域网的传输速度也在不断提高。
- 成本较高:建设和维护广域网需要大量的资金和技术投入。需要使用高速的通信线路(如光纤、卫星通信等)和专业的网络设备,并且需要专业的技术人员进行管理和维护。
- 安全性较低:由于广域网的开放性和复杂性,其安全性相对较低。容易受到黑客攻击、病毒感染等安全威胁。因此,需要采取更加严格的安全措施来保护网络安全。
- 应用场景:企业的分支机构之间的网络连接、银行的全国性网络系统、政府部门的电子政务网络等都是广域网的应用场景。这些网络需要在不同的地区之间进行数据传输和信息共享,因此需要广域网的支持。
1.3.1.3. 互联网(Internet)
- 定义:互联网是由全球范围内众多的计算机网络互相连接而成的一个庞大的网络系统,它使用标准的互联网协议(如 TCP/IP)来实现不同网络之间的通信。
- 特点:
-
- 全球性:互联网覆盖全球各个角落,连接了数十亿的计算机和设备,使得人们可以在世界任何地方进行信息交流和资源共享。
- 开放性:互联网是一个开放的平台,任何人都可以通过接入网络来获取信息、发布内容和进行交流。但是,这种开放性也带来了一些安全问题,如网络攻击、信息泄露等。
- 多样性:互联网上的内容和服务非常丰富多样,包括网页浏览、电子邮件、在线购物、社交媒体、视频会议等。用户可以根据自己的需求选择不同的服务和应用。
- 动态性:互联网是一个不断发展和变化的网络,新的技术、应用和服务不断涌现。同时,互联网上的信息也在不断更新和变化,用户需要不断学习和适应新的网络环境。
- 应用场景:互联网的应用场景几乎涵盖了人们生活和工作的各个方面。人们可以通过互联网进行在线学习、远程办公、娱乐休闲、社交互动等。企业可以利用互联网进行电子商务、市场营销、客户服务等。政府可以通过互联网提供公共服务、信息发布、政务公开等。
1.3.2. 计算机网络基础之网络协议(以 TCP/IP 协议为例)
1.3.2.1. IP 地址
- 定义:IP 地址是互联网协议地址,是分配给连接到互联网上的每一台设备的数字标识。它就像一个设备在网络中的 "门牌号码",用于在网络中唯一地标识一台设备,以便数据能够准确地传输到目标设备。
- 组成:IP 地址由 32 位(IPv4)或 128 位(IPv6)二进制数字组成。通常以点分十进制的形式表示,例如 IPv4 地址 "192.168.1.1"。
- 分类:
-
- IPv4 地址分为 A、B、C、D、E 五类。其中 A、B、C 三类是常用的 IP 地址类型,分别用于大型网络、中型网络和小型网络。D 类地址用于多播,E 类地址保留用于实验和研究。
- IPv6 地址则采用了更长的地址长度,以满足日益增长的网络设备数量和多样化的网络需求。
- 作用:IP 地址在网络通信中起着至关重要的作用。当一台设备要向另一台设备发送数据时,它会根据目标设备的 IP 地址将数据封装成数据包,并通过网络传输到目标设备所在的网络。目标设备所在的网络根据 IP 地址将数据包转发到正确的设备。
1.3.2.2. 子网掩码
- 定义:子网掩码是一个 32 位(IPv4)或 128 位(IPv6)的二进制数字,用于确定 IP 地址中的网络部分和主机部分。它与 IP 地址配合使用,帮助网络设备确定数据包的目标地址是在本地网络还是在远程网络。
- 作用:通过子网掩码,可以将一个大型的网络划分为多个较小的子网,提高网络的效率和安全性。例如,在一个企业网络中,可以使用子网掩码将网络划分为不同的部门子网,每个子网可以独立管理和控制,同时也可以减少网络广播和冲突。
- 计算方法:子网掩码的计算通常涉及到二进制的位运算。例如,对于一个 C 类 IP 地址(如 192.168.1.1),默认的子网掩码是 255.255.255.0。这个子网掩码表示前三个字节(24 位)是网络部分,最后一个字节(8 位)是主机部分。如果要将这个网络划分为多个子网,可以根据需要调整子网掩码,例如将子网掩码设置为 255.255.255.128,这样就可以将网络划分为两个子网,每个子网可以容纳 126 台主机。
1.3.2.3. 网关
- 定义:网关是一个网络连接到另一个网络的 "关口",也可以理解为不同网络之间的桥梁。在计算机网络中,网关通常是一个路由器或具有路由功能的设备,它负责将数据包从一个网络转发到另一个网络。
- 作用:当一个设备要向另一个网络中的设备发送数据时,它会将数据包发送到本地网络的网关。网关接收到数据包后,会根据目标地址确定数据包应该转发到哪个网络,并将数据包转发到相应的网络。如果目标网络不可达,网关会返回一个错误信息给源设备。
- 设置方法:在计算机网络中,通常需要设置默认网关,以便设备能够与其他网络进行通信。默认网关的 IP 地址通常是本地网络连接到外部网络的路由器的 IP 地址。例如,在一个家庭网络中,通常将无线路由器的 IP 地址设置为默认网关。当家庭网络中的设备要访问互联网时,它们会将数据包发送到无线路由器,无线路由器再将数据包转发到互联网服务提供商的网络。
2. 二进制
2.1. 二进制介绍
2.1.1. 定义与计算机中的应用
- 二进制是一种数学进制,其基数只有 0 和 1 两个数字。在现代计算机中,二进制被广泛应用于底层的运算和存储。这是因为计算机的硬件是通过电子元件来实现的,而电子元件的状态通常可以用两种不同的电平来表示,例如高电位对应 1,低电位对应 0。这种简单的二态系统与二进制的 0 和 1 完美对应,使得计算机能够高效地处理和存储信息。
2.1.2. 计算机采用二进制的好处
- 技术实现简单,状态稳定:由于只有两种状态,计算机的硬件设计可以更加简单和可靠。电子元件只需要区分高电平和低电平两种状态,这比处理多种不同状态的系统更容易实现。而且,两种状态之间的转换相对稳定,不容易受到外界干扰,从而提高了计算机的可靠性和稳定性。
- 与逻辑运算对应:二进制中的 1 和 0 可以很自然地与逻辑运算中的真(true)和假(false)对应起来。在计算机科学中,逻辑运算非常重要,用于判断条件、控制程序流程等。例如,1 可以表示真,即某个条件成立;0 可以表示假,即某个条件不成立。这种对应关系使得计算机能够方便地进行逻辑运算,从而实现各种复杂的功能。
- 易于转换为十进制:虽然计算机内部使用二进制进行运算和存储,但在与人类交互时,通常需要使用十进制。幸运的是,二进制和十进制之间的转换相对简单。十进制转二进制可以采用除 2 取余法,将十进制数不断除以 2,取余数,直到商为 0,然后将余数从下往上排列就是二进制数。二进制转十进制则是把二进制数按权展开,即将每一位数字乘以 2 的相应次方,然后相加得到十进制数。
2.1.3. 常见的数学进制
- 二进制(bin):逢 2 进 1,基数是 0 和 1。在计算机中,二进制是最基本的进制,所有的数据都以二进制的形式存储和处理。例如,数字 5 在二进制中表示为 101,其中 1 代表 4,0 代表 0,1 代表 1,相加得到 5。
- 八进制(oct):逢 8 进 1,基数是 0 - 7。八进制在一些特定的场景下会被使用,例如在某些编程语言中,八进制可以用来表示文件权限等。八进制与二进制之间的转换比较方便,因为八进制的一位数字可以对应二进制的三位数字。例如,八进制数字 7 在二进制中表示为 111。
- 十进制(dec):逢 10 进 1,基数是 0 - 9。十进制是我们日常生活中最常用的进制,它的特点是简单直观。计算机在与人类交互时,通常会将二进制数据转换为十进制显示给用户。例如,数字 10 在十进制中就是 10,而在二进制中表示为 1010。
- 十六进制(hex):逢 16 进 1,基数是 0 - 9 和 A - F。十六进制在计算机领域中也经常被使用,特别是在表示内存地址、颜色值等方面。十六进制与二进制之间的转换也很方便,因为十六进制的一位数字可以对应二进制的四位数字。例如,十六进制数字 F 在二进制中表示为 1111。
2.2. 二进制与十进制转换
2.2.1. 十进制转二进制
- 采用除 2 取余法。具体步骤如下:
-
- 将十进制数除以 2,得到商和余数。
- 将商继续除以 2,再次得到商和余数。
- 重复这个过程,直到商为 0。
- 最后,将所有的余数从下往上排列,就得到了对应的二进制数。
- 例如,将十进制数 10 转换为二进制:
-
- 10 ÷ 2 = 5......0
- 5 ÷ 2 = 2......1
- 2 ÷ 2 = 1......0
- 1 ÷ 2 = 0......1
- 从下往上排列余数,得到二进制数 1010。
2.2.2. 二进制转十进制
- 把二进制数按权展开。具体步骤如下:
-
- 确定二进制数的位数,从右往左依次为第 0 位、第 1 位、第 2 位......
- 对于每一位数字,乘以 2 的相应次方。例如,第 0 位数字乘以 2 的 0 次方,第 1 位数字乘以 2 的 1 次方,第 2 位数字乘以 2 的 2 次方......
- 将所有位的结果相加,就得到了对应的十进制数。
- 例如,将二进制数 1010 转换为十进制:
-
- 1×2³ + 0×2² + 1×2¹ + 0×2⁰ = 8 + 0 + 2 + 0 = 10。
2.3. 二进制与八进制、十六进制转换
2.3.1. 二进制转八进制
- 将二进制数从右往左每三位一组进行划分。
- 对于每一组三位二进制数,转换为对应的八进制数字。具体转换方法如下:
-
- 000 对应八进制数字 0。
- 001 对应八进制数字 1。
- 010 对应八进制数字 2。
- 011 对应八进制数字 3。
- 100 对应八进制数字 4。
- 101 对应八进制数字 5。
- 110 对应八进制数字 6。
- 111 对应八进制数字 7。
- 例如,将二进制数 101011 转换为八进制:
-
- 从右往左每三位一组划分,得到 011 和 101。
- 011 对应八进制数字 3,101 对应八进制数字 5。
- 所以二进制数 101011 转换为八进制是 53。
2.3.2. 二进制转十六进制
- 将二进制数从右往左每四位一组进行划分。
- 对于每一组四位二进制数,转换为对应的十六进制数字。具体转换方法如下:
-
- 0000 对应十六进制数字 0。
- 0001 对应十六进制数字 1。
- 0010 对应十六进制数字 2。
- 0011 对应十六进制数字 3。
- 0100 对应十六进制数字 4。
- 0101 对应十六进制数字 5。
- 0110 对应十六进制数字 6。
- 0111 对应十六进制数字 7。
- 1000 对应十六进制数字 8。
- 1001 对应十六进制数字 9。
- 1010 对应十六进制数字 A。
- 1011 对应十六进制数字 B。
- 1100 对应十六进制数字 C。
- 1101 对应十六进制数字 D。
- 1110 对应十六进制数字 E。
- 1111 对应十六进制数字 F。
- 例如,将二进制数 10101110 转换为十六进制:
-
- 从右往左每四位一组划分,得到 1110 和 1010。
- 1110 对应十六进制数字 E,1010 对应十六进制数字 A。
- 所以二进制数 10101110 转换为十六进制是 AE。
3. 编码和计量单位
3.1. 概念
3.1.1. 自然语言到机器语言的"翻译"
- 人类使用的自然语言丰富多彩、复杂多样,包含了各种词汇、语法和语义。而计算机只能理解由 0 和 1 组成的机器语言。将人类可以理解的自然语言"翻译"成计算机可以理解的机器语言是计算机科学中的一个关键任务。这个过程涉及到将自然语言中的字符、词语和句子转换为计算机能够处理的二进制代码。
- 例如,当我们在计算机上输入一段文本时,计算机需要将这些文本字符转换为二进制代码,才能进行存储、处理和显示。这个转换过程通常由编程语言、编译器和解释器等工具来完成。通过这些工具,我们可以将自然语言中的指令和数据转换为计算机能够理解的机器语言,从而实现各种计算机应用。
3.1.2. 字符与二进制的对应关系
- 为了让计算机能够识别人类语言,需要将人类语言中的字符与二进制当中的数字建立对应关系。这种对应关系被称为编码。通过编码,每个字符都被赋予了一个唯一的二进制代码,计算机可以根据这个代码来识别和处理相应的字符。
- 例如,在 ASCII 码中,字母"A"被编码为二进制数 01000001。当计算机读取到这个二进制代码时,它就知道这个代码代表字母"A"。通过这种方式,计算机可以识别和处理各种字符,从而实现对人类语言的理解和处理。
3.2. 编码
3.2.1. ASCII 码
- ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是一种最基础的字符编码标准。它使用 7 位二进制表示 128 个字符,包括大小写字母、数字、标点符号和一些控制字符。
- ASCII 码的优点是简单、通用,被广泛应用于早期的计算机系统和通信协议中。例如,在电子邮件、文本文件和一些简单的网络协议中,仍然可以看到 ASCII 码的身影。然而,ASCII 码的局限性也很明显,它只能表示 128 个字符,无法满足世界上各种语言的编码需求。
- 例如,ASCII 码无法表示中文、日文、韩文等非拉丁字母语言中的字符。为了解决这个问题,人们开发了更多的字符编码标准,如 Unicode 码。
3.2.2. Unicode 码
- Unicode 是为了解决不同语言文字的编码问题而产生的统一编码标准。它涵盖了世界上大部分的字符,包括各种语言的字母、符号、标点符号和 emoji 等。Unicode 使用多种编码方式,其中最常见的是 UTF-8、UTF-16 和 UTF-32。
- UTF-8 是一种可变长度的编码方式,它可以使用 1 到 4 个字节来表示一个字符。UTF-8 具有兼容性好、节省存储空间等优点,被广泛应用于互联网和现代计算机系统中。例如,在网页开发中,通常使用 UTF-8 编码来确保网页能够正确显示各种语言的字符。
- UTF-16 和 UTF-32 则是固定长度的编码方式,分别使用 2 个和 4 个字节来表示一个字符。这两种编码方式适用于需要处理大量字符的场合,如数据库存储和高级文本处理软件。
3.2.3. 当前最常见的中文编码标准 UTF-8
- UTF-8 作为代表国际编码的标准,在处理中文方面具有重要地位。UTF-8 可以表示中文、日文、韩文等多种语言的字符,同时也与 ASCII 码兼容。这意味着在使用 UTF-8 编码的文本中,ASCII 码字符仍然可以使用 7 位二进制表示,而中文等其他字符则使用可变长度的编码方式。
- 例如,汉字"中"在 UTF-8 编码中通常使用 3 个字节来表示。UTF-8 的这种特性使得它在互联网和跨国交流中得到了广泛应用,因为它可以确保不同语言的文本在不同的计算机系统和平台上都能够正确显示和处理。
3.3. 计量单位
3.3.1. 存储单位
- 计算机中的数据存储通常使用字节(B)、千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)和拍字节(PB)等单位来表示。这些单位之间的换算关系是基于 2 的幂次方,即 1KB = 1024B,1MB = 1024KB,以此类推。
-
- 1B(节字:bytes ) = 8b(比特:bit 位,人为规定的最小计量单位 )
- 1KB = 1024B
- 1MB(兆) = 1024KB
- 1GB = 1024MB
- 1TB = 1024GB
- 1PB = 1024TB
- 字节(B)是计算机存储的基本单位,它通常用来表示一个字符或一个小的整数。例如,一个英文字母通常占用 1 个字节的存储空间,而一个汉字通常占用 2 个或 3 个字节的存储空间。
- 千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)和拍字节(PB)等单位则用于表示更大的存储容量。例如,一部高清电影可能占用几个吉字节的存储空间,而一个大型数据库可能占用几十太字节甚至更多的存储空间。
3.3.2. 数据传输速率单位
- 数据传输速率通常使用**比特每秒(bps)、千比特每秒(Kbps)、兆比特每秒(Mbps)**等单位来表示。这些单位表示在一秒钟内传输的比特数量。
- 比特每秒(bps)是最基本的数据传输速率单位,它表示每秒传输 1 个比特的数据量。千比特每秒(Kbps)表示每秒传输 1000 个比特的数据量,兆比特每秒(Mbps)表示每秒传输 1000000 个比特的数据量。
- 例如,一个网络连接的速度为 100Mbps(Million bits per second),表示这个网络连接在一秒钟内可以传输 100000000 个比特的数据量。数据传输速率的单位通常用于描述网络连接的速度、硬盘读写速度和其他数据传输设备的性能。
4. 浏览器
4.1. 功能
- 浏览器是一种用于访问互联网上的网页资源的软件工具。它的主要功能是通过解析 HTML(超文本标记语言)、CSS(层叠样式表)和 JavaScript 等语言来显示网页内容。HTML 定义了网页的结构和内容,CSS 用于控制网页的样式和布局,而 JavaScript 则可以为网页添加交互性和动态效果。
- 当用户在浏览器中输入网址或点击链接时,浏览器会向相应的服务器发送请求,服务器返回网页的 HTML、CSS 和 JavaScript 等文件。浏览器接收到这些文件后,会对它们进行解析和渲染,最终在用户的屏幕上显示出完整的网页内容。此外,浏览器还提供了一些其他功能,如书签管理、历史记录、下载文件、插件扩展等,以方便用户的使用。
4.2. 常见浏览器
- Google Chrome:由谷歌公司开发的一款免费浏览器,具有快速、稳定、安全等特点。Chrome 采用了多进程架构,每个标签页都在独立的进程中运行,这使得它在处理多个标签页时更加稳定,同时也提高了安全性。Chrome 还拥有丰富的插件生态系统,用户可以根据自己的需求安装各种插件来扩展浏览器的功能。此外,Chrome 还不断推出新的功能和改进,如自动翻译、语音搜索、暗黑模式等,以满足用户的需求。
- Mozilla Firefox:一款开源的浏览器,由 Mozilla 基金会开发。Firefox 以其高度的可定制性和安全性而受到用户的喜爱。用户可以通过安装各种插件和主题来个性化自己的浏览器,同时 Firefox 也提供了强大的隐私保护功能,如跟踪保护、隐私浏览模式等。Firefox 还积极推动互联网的开放和创新,支持各种新的 Web 标准和技术。
- Microsoft Edge:由微软公司开发的一款浏览器,最初是为了取代 Internet Explorer。Edge 采用了 Chromium 内核,这使得它在性能和兼容性方面有了很大的提升。Edge 还拥有一些独特的功能,如集锦、垂直标签页、沉浸式阅读等,以提高用户的生产力和阅读体验。此外,Edge 也注重隐私保护和安全性,提供了跟踪预防、密码监控等功能。
5. 图片类型
5.1. 常见格式
- 在数字图像领域,有多种常见的图片格式,每种格式都有其特定的用途和特点。JPEG、PNG 和 GIF 是其中最常见的三种格式。
5.1.1. JPEG
- 特点:JPEG(Joint Photographic Experts Group)是一种广泛使用的有损压缩图像格式。它适用于照片等色彩丰富的图像,因为它可以在保持较高图像质量的同时,实现较大的压缩比。有损压缩意味着在压缩过程中会丢失一些图像数据,但通常这种损失对于人眼来说是难以察觉的。
- 应用场景:JPEG 格式的图片通常用于存储和分享照片、图像画廊、网页中的图片等。由于其较高的压缩比,JPEG 图片可以在不占用过多存储空间的情况下,保持较好的图像质量。然而,由于是有损压缩,不适合用于需要高精度图像的场合,如印刷、医学图像等。
5.1.2. PNG
- 特点:PNG(Portable Network Graphics)是一种无损压缩的图像格式,支持透明背景。这使得它非常适合用于图标、图形、网页设计等场合,因为可以将图像与背景融合得更加自然。无损压缩意味着在压缩过程中不会丢失图像数据,因此可以保持原始图像的质量。
- 应用场景:PNG 格式的图片常用于制作图标、徽标、透明背景的图像等。在网页设计中,PNG 图片可以与 HTML 和 CSS 配合使用,实现各种特效和交互效果。此外,PNG 格式还支持多种颜色深度和透明度级别,可以满足不同的需求。
5.1.3. GIF
- 特点:GIF(Graphics Interchange Format)是一种支持动画的图像格式。它可以包含多帧图像,通过连续播放这些帧来实现简单的动画效果。GIF 也是一种无损压缩格式,但由于其颜色限制(最多支持 256 种颜色),通常不适合用于存储高质量的图像。
- 应用场景:GIF 格式的动画通常用于网页广告、表情符号、社交媒体等场合。由于其文件大小较小,加载速度快,适合在网络上传播。此外,GIF 还可以用于制作简单的动画教程、演示文稿等。但需要注意的是,GIF 动画的帧率较低,不适合用于制作复杂的动画效果。
6. 网站访问过程
6.1. 概述
当用户在浏览器中输入网址(URL),如 百度一下,你就知道 时,就开启了网站的访问过程。首先,浏览器会通过域名系统(DNS)将网址解析为对应的 IP 地址,然后向该 IP 地址发送 HTTP 请求以访问特定的网页资源。服务器接收到请求后,会根据请求内容返回相应的 HTML、CSS、JavaScript 等文件。最后,浏览器接收到这些文件后进行解析和渲染,从而显示出网页内容。
6.2. URL(统一资源定位符)
- 定义:网址(如 http://www.baidu.com)就是 URL,全称为 Uniform Resource Locator,即统一资源定位符,它是互联网上资源的地址和位置。
- 格式:URL 格式为协议://主机地址/路径。例如,在 http://www.example.com/page 中,"http"是协议,"www.example.com"是主机地址,"/page"是路径。
- 作用:通过 URL,用户可以方便地访问互联网上的各种资源。
6.3. HTTP 协议
- 协议的定义:网络协议是通信计算机双方必须共同遵从的一组约定。
- HTTP 协议的定义:(HyperText Transfer Protocol)超文本传输协议(HTTP)规定了浏览器和服务器之间通信的规则。它是一种用于分布式、协作式和超媒体信息系统的应用层协议。
- 作用:HTTP 协议使得浏览器和服务器能够有效地进行数据交换,确保网页的正常显示和交互。
- HTTP 通常运行在 TCP 之上,用于在 Web 浏览器和 Web 服务器之间传输超文本数据,如 HTML 文件、图像、视频等资源。
- TCP是Transmission Control Protocol(传输控制协议)的简称。 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。它通过三次握手建立连接,在数据传输过程中进行流量控制、拥塞控制等,以确保数据准确、有序地从一端传输到另一端。TCP在互联网通信以及很多网络应用中起着至关重要的作用。
- 三次握手是 TCP 建立连接的过程,主要目的是为了在客户端和服务器之间建立可靠的连接,确保双方都能准备好进行数据传输
6.4. 三次握手的过程
- 第一次握手:
- 客户端向服务器发送一个 SYN(Synchronize Sequence Numbers,同步序列编号)报文段。这个报文段中包含一个随机生成的初始序列号(Initial Sequence Number,ISN),例如客户端将 ISN 设为 X。此时客户端进入 SYN_SENT(同步已发送)状态。
- 这个步骤就像是客户端向服务器打招呼:"我想和你建立连接,这是我的初始序号 X。"
- 第二次握手:
- 服务器收到客户端的 SYN 报文段后,为该连接分配资源,并向客户端发送一个 SYN 和 ACK(Acknowledgment,确认)报文段。
- 这个报文段中也包含一个随机生成的初始序列号,例如服务器将 ISN 设为 Y,同时将确认号(Acknowledgment Number)设为客户端的序列号加一,即 X + 1,表示服务器已经收到了客户端的 SYN 报文段,并且期望下一个收到的字节序号是 X + 1。此时服务器进入 SYN_RCVD(同步收到)状态。
- 这一步相当于服务器回应客户端:"好呀,我也想和你建立连接,这是我的初始序号 Y,我已经收到了你的序号 X,期待你下一个序号是 X + 1。"
- 第三次握手:
- 客户端收到服务器的 SYN + ACK 报文段后,向服务器发送一个 ACK 报文段。这个报文段中的确认号为服务器的序列号加一,即 Y + 1,表示客户端已经收到了服务器的 SYN 报文段,并且期望下一个收到的字节序号是 Y + 1。此时客户端进入 ESTABLISHED(已建立连接)状态。
- 服务器收到客户端的 ACK 报文段后,也进入 ESTABLISHED 状态。
- 这一步就像是客户端再次向服务器确认:"我收到了你的序号 Y,现在我们可以开始传输数据了。"
6.5. 三次握手的作用
- 确认双方的接收和发送能力:
- 通过三次握手,客户端和服务器可以确认彼此的接收和发送能力是否正常。例如,在第一次握手时,客户端向服务器发送 SYN 报文段,如果服务器能够收到并正确处理这个报文段,就说明服务器的接收能力正常;在第二次握手时,服务器向客户端发送 SYN + ACK 报文段,如果客户端能够收到并正确处理这个报文段,就说明客户端的接收能力正常,同时也说明服务器的发送能力正常;在第三次握手时,客户端向服务器发送 ACK 报文段,如果服务器能够收到并正确处理这个报文段,就说明服务器的接收能力正常,同时也说明客户端的发送能力正常。
- 同步初始序列号:
- 由于网络中的数据可能会出现乱序、重复等情况,因此需要通过初始序列号来确保数据的有序传输。在三次握手过程中,客户端和服务器分别随机生成一个初始序列号,并通过报文段交换彼此的序列号,从而实现序列号的同步。这样,在后续的数据传输过程中,双方就可以根据序列号来确定数据的顺序和完整性。
- 防止过期的连接请求:
- 在网络中,可能会出现由于网络延迟等原因导致的过期连接请求。如果没有三次握手,服务器可能会在收到一个过期的连接请求后,错误地建立连接,从而浪费资源。通过三次握手,服务器在收到连接请求后,会等待客户端的确认,如果在一定时间内没有收到确认,就会丢弃这个连接请求,从而避免了建立过期连接的情况。
6.6. 域名
- 示例:案例中的 www.baidu.com 就是域名。
- 定义:域名又称网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时对计算机进行定位标识。
- 好处:域名的好处是方便记忆,相比 IP 地址,用户更容易记住域名。
6.7. IP 地址
- 定义:IP 地址是指互联网协议地址,互联网上所有的设备都有一个独一无二的 IP 地址。
- 关系:所有的域名都有一个相对应的 IP 地址,并且可以把 URL 中域名替换成 IP 地址。例如,http://192.168.1.1 和 Example Domain 可能指向同一个网站。
6.8. DNS 和 hosts
- DNS(域名系统):
- 定义:Domain Name System,用于把域名转换为对应的 IP 地址。
- 域名解析过程:域名解析就是由域名到 IP 地址的转换过程,域名的解析工作由 DNS 服务器完成。
- hosts 文件:
- 性质:hosts 是一个没有扩展名的系统文件,可以用记事本等工具打开。
- 作用:其作用是将一些常用的网址域名与其对应的 IP 地址建立一个关联。
- 访问流程:当用户在浏览器中输入一个网址时,系统会首先自动从 hosts 文件中寻找对应的 IP 地址,一旦找到,系统会立即打开对应网页;如果没有找到,则系统会再将网址提交 DNS 域名解析服务器进行 IP 地址的解析。
- 文件位置:在不同操作系统(甚至不同 Windows 版本)中位置不同,如 Windows XP/7/8/10 系统 hosts 文件路径为 C:\Windows\System32\drivers\etc。
6.9. 客户端和服务器端
- 客户端(Client):
- 定义:又称为用户端,是指与服务器相对应,为客户提供服务的程序。
- 示例:用户使用的浏览器、桌面应用程序、APP 等。
- 服务器端(Server):
- 定义:是指网络中能对其它机器提供某些服务的计算机系统。
6.10. HTTP 请求
- 请求的定义:客户端向服务器索取数据或提交数据的一种行为。
- HTTP 请求:客户端向服务器端发送基于 HTTP 协议的请求。
- HTTP 请求方式:
- 在发送 HTTP 请求时,可以选择不同的请求方式,最常见的请求方式有 GET 和 POST。
- GET:提交的数据显示在地址栏,如果是敏感数据则不安全,受限于 URL 的长度,提交的数据量有限制。
- POST:POST 请求是有请求体的,敏感数据可以放到请求体中,用户不能直接看到,相对来说更加安全一些,没有数据量大小的限制。
6.11. HTTP 响应
- 响应的定义:服务器对客户端请求做出的反应,返回客户端所需要的数据。
- HTTP 响应内容:
- HTTP 响应组成:响应行、响应头、响应体。
6.11.1. 常见响应状态码:
6.11.1.1. 200 OK
- 这是最常见的 HTTP 状态码,表示服务器已经成功接受请求,并将返回客户端所请求的最终结果。
- 例如,当你在浏览器中输入一个正确的网址并成功加载网页时,服务器通常会返回状态码 200。表示请求的资源被正确找到并返回给客户端,一切正常。
6.11.1.2. 404 Not Found
- 请求失败,客户端请求的资源没有找到或者是不存在。
- 当你在浏览器中输入一个错误的网址或者请求的页面已被删除时,服务器会返回 404 状态码。比如你输入"www.example.com/nonexistentpage",如果服务器上没有这个页面,就会返回 404 状态码。
6.11.1.3. 500 Internal Server Error
- 服务器端出现错误,导致无法完成客户端当前的请求。
- 这通常表示服务器在处理请求的过程中遇到了意外情况,例如程序错误、数据库连接问题等。比如服务器上的某个脚本出现了语法错误,或者数据库服务器无法响应,就可能导致返回 500 状态码。
6.11.1.4. 301 Moved Permanently
- 请求的资源已被永久移动到新的 URL。
- 当一个网页的 URL 发生了永久性的改变时,服务器会返回 301 状态码,并在响应头中提供新的 URL 地址。浏览器接收到这个状态码后,会自动重定向到新的 URL。例如,一个网站进行了重构,所有的页面都迁移到了新的域名下,服务器就会对旧域名的请求返回 301 状态码,引导用户访问新的地址。
6.11.1.5. 302 Found(Moved Temporarily)
- 请求的资源临时被移动到了其他位置。
- 与 301 类似,但表示资源的移动是临时的。浏览器在接收到 302 状态码时,也会进行重定向,但不会像 301 那样永久记住新的 URL。比如在一些网站的登录过程中,可能会先将用户重定向到一个中间页面进行验证,然后再重定向到最终的目标页面,这个中间页面可能会返回 302 状态码。
6.11.1.6. 400 Bad Request
- 客户端请求的语法错误,服务器无法理解。
- 通常是由于客户端发送的请求格式不正确或者缺少必要的参数导致的。例如,发送的 JSON 数据格式错误,或者请求的 URL 中缺少必要的参数,服务器就可能返回 400 状态码。
6.11.1.7. 401 Unauthorized
- 请求要求用户的身份认证。
- 当用户试图访问一个需要认证的资源,但没有提供有效的认证信息时,服务器会返回 401 状态码。例如,访问一个受密码保护的页面,但没有输入正确的用户名和密码,就会收到这个状态码。
6.11.1.8. 403 Forbidden
- 服务器理解请求客户端的请求,但是拒绝执行此请求。
- 与 401 不同,403 表示用户虽然经过了认证,但没有足够的权限访问请求的资源。比如一个普通用户试图访问只有管理员才能访问的页面,服务器就会返回 403 状态码。
6.11.1.9. 502 Bad Gateway
- 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
- 通常是由于服务器作为网关或代理时,无法从上游服务器获得正确的响应。例如,一个反向代理服务器无法连接到后端的应用服务器,就可能返回 502 状态码。
6.11.1.10. 503 Service Unavailable
- 服务器目前无法使用(由于超载或停机维护)。
- 表示服务器暂时无法处理请求,可能是因为服务器正在进行维护、过载或者出现了其他问题。例如,一个电商网站在进行大规模促销活动时,由于访问量过大,服务器可能会返回 503 状态码,提示用户稍后再试。
6.12. 总结网站的访问过程
- 在浏览器中输入 URL。
- 需要通过解析,去找到相应的 IP。具体来说,查找 IP 首先会从本地的 hosts 文件开始,如果找不到则去 DNS 服务器查找。
- 如果 DNS 帮我们找到了目标的 IP,我们先发送一个测试的请求,通过之后再发送正式请求。
- 服务器接收到正式的请求之后,它还需要进行验证。如果验证通过,则去帮我们找到当次请求想要的文件。
- 服务器开始处理我们想要的文件,在这个过程中有可能会用到数据库中的数据。
- 当服务器将文件处理完毕之后再通过 HTTP 协议还给浏览器,此时浏览器就用自己的渲染引擎来进行渲染展示。
7. DOS 命令
7.1. 概述
DOS(Disk Operating System)命令是一种在命令提示符下执行的指令,用于操作计算机的文件系统、网络和系统等方面。这些命令可以帮助用户快速完成各种任务,提高工作效率。
7.2. 文件操作命令
dir
:- 功能:列出当前目录下的文件和文件夹。
- 用法:在命令提示符下输入"dir",按下回车键即可显示当前目录下的所有文件和文件夹的名称、大小、创建日期等信息。
- 示例:如果当前目录为 C:\Users\Username,输入"dir"后,会显示该目录下的文件和文件夹列表,如 Documents、Pictures、Downloads 等。
cd
:- 功能:改变当前目录。
- 用法:"cd [目录路径]",其中目录路径可以是绝对路径或相对路径。绝对路径是从根目录开始的完整路径,如 C:\Windows;相对路径是相对于当前目录的路径,如..(表示上一级目录)、.\FolderName(表示当前目录下的 FolderName 文件夹)。
- 示例:如果当前目录为 C:\Users\Username,输入"cd Documents",则会进入 C:\Users\Username\Documents 目录。
md
(mkdir
):- 功能:创建目录。
- 用法:"md [目录名称]",其中目录名称是要创建的文件夹的名称。
- 示例:在 C:\Users\Username 目录下,输入"md NewFolder",则会创建一个名为 NewFolder 的文件夹。
rd
(rmdir
):- 功能:删除目录。
- 用法:"rd [目录名称]",其中目录名称是要删除的文件夹的名称。需要注意的是,只能删除空目录,如果目录中包含文件或子目录,则需要先删除其中的内容。
- 示例:如果要删除 C:\Users\Username\NewFolder 目录,可以在命令提示符下输入"rd NewFolder"。
copy
:- 功能:复制文件。
- 用法:"copy [源文件路径] [目标文件路径]",其中源文件路径是要复制的文件的路径,目标文件路径是复制后的文件的保存路径。
- 示例:如果要将 C:\Users\Username\Document1.txt 复制到 D:\Backup 目录下,可以输入"copy C:\Users\Username\Document1.txt D:\Backup"。
del
:- 功能:删除文件。
- 用法:"del [文件路径]",其中文件路径是要删除的文件的路径。
- 示例:如果要删除 C:\Users\Username\Document1.txt,可以输入"del C:\Users\Username\Document1.txt"。
7.3. 网络操作命令
ping
:- 功能:测试网络连接,检查目标主机是否可达。
- 用法:"ping [目标主机地址]",其中目标主机地址可以是 IP 地址或域名。
- 示例:输入"ping www.baidu.com",会向百度的服务器发送数据包,并显示响应时间、丢包率等信息,以判断网络连接是否正常。
ipconfig
:- 功能:查看本机的 IP 地址、子网掩码、网关等网络配置信息。
- 用法:在命令提示符下输入"ipconfig",按下回车键即可显示本机的网络配置信息。
- 示例:输入"ipconfig"后,会显示本机的 IP 地址、子网掩码、默认网关等信息,如 IPv4 地址:192.168.1.100,子网掩码:255.255.255.0,默认网关:192.168.1.1。
7.4. 系统操作命令
tasklist
:- 功能:查看当前系统正在运行的进程。
- 用法:在命令提示符下输入"tasklist",按下回车键即可显示当前系统中正在运行的进程的名称、PID(进程标识符)、内存使用情况等信息。
- 示例:输入"tasklist"后,会显示一系列进程信息,如 explorer.exe(PID:1234,内存使用:100MB)、chrome.exe(PID:5678,内存使用:200MB)等。
taskkill
:- 功能:结束指定的进程。
- 用法:"taskkill [进程名称或 PID]",其中进程名称是要结束的进程的名称,PID 是进程的标识符。可以使用"/F"参数强制结束进程。
- 示例:如果要结束名为 chrome.exe 的进程,可以输入"taskkill /IM chrome.exe";如果要强制结束 PID 为 5678 的进程,可以输入"taskkill /PID 5678 /F"。
systeminfo
:- 功能:查看系统的详细信息。
- 用法:在命令提示符下输入"systeminfo",按下回车键即可显示系统的详细信息,包括操作系统版本、安装日期、计算机名称、处理器信息、内存信息等。
- 示例:输入"systeminfo"后,会显示系统的详细信息,如操作系统名称:Windows 10 Pro,版本:1909,安装日期:2020-01-01,计算机名称:PC01,处理器:Intel Core i7-8700K,内存:16GB 等。