Linux复习笔记(三) 网络服务配置(web)
遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。
二、网络服务配置
2.3 web服务配置
2.3.1通信基础:HTTP协议与C/S架构(了解)
-
HTTP协议的核心作用
Web服务基于HTTP/HTTPS协议实现客户端(浏览器)与服务器的通信。HTTP协议定义了两类报文:- 请求报文:包含请求行(方法如GET/POST、URL路径、协议版本)、请求头(如User-Agent、Cookie)、请求体(如表单数据)
- 响应报文:包含状态行(如200 OK、404 Not Found)、响应头(如Content-Type)、响应体(如HTML页面或JSON数据)
-
无状态性与状态管理
HTTP协议本身无状态,但通过Cookie(客户端存储)和Session(服务器端存储)实现会话状态跟踪。例如,用户登录后,服务器通过Set-Cookie头部下发Session ID,客户端后续请求自动携带该ID以保持登录状态。
2.3.2web 服务基础概览(了解)
-
基础架构
Web服务基于C/S(客户端-服务器)架构,服务器负责管理资源、响应客户端请求,客户端负责接收并展示内容。 -
服务分类(掌握)
- 静态Web服务:内容固定,不随用户请求变化。
- 动态Web服务:内容实时生成,支持交互性(如用户登录、数据库查询)。
-
主流动态语言
语言 特点 部署环境 ASP/ASP.net 微软开发,集成Windows生态,适合企业级应用。 通常部署于Windows服务器。 PHP 开源跨平台,语法融合C/Java/Perl,适合快速开发轻量级应用。 支持Linux/Windows,需安装PHP环境。 JSP Sun公司推出,基于Java,可结合Servlet/JavaBean实现复杂功能。 需安装JSP服务包(如Tomcat),兼容跨平台。 -
服务器环境依赖
- Linux系统:天然支持PHP,需额外安装JSP服务包(如Tomcat)。
- Windows系统:默认支持ASP/ASP.net,也可部署PHP/JSP但需配置环境。
2.3.3 web 服务的工作流程/原理(熟悉)
简单来说,web服务器就是基于http协议一个线上仓库, 可以接收和响应客户资源请求。
具体流程:
- 用户点击浏览器访问网页,浏览器获取访问网页的事件。
- 客户端与浏览器建立TCP连接。
- 浏览器将用户的事件按照HTTP协议格式打包为一个压缩包,添加HTTP协议包头后形成字节流,存入协议缓冲区。
- 在成功建立TCP连接后,浏览器将数据报推送到网络中,最终递交到Web服务器。
- 服务器接收到数据报后,以同样的格式进行解析,从而得出客户端所需要的资源,最后服务器进行分类处理,或是提供某一文件,或者处理相关数据。
- 将结果装入缓冲区,按照HTTP协议格式对数据进行打包,并对客户端发送应答,最终数据包递交到客户端。
- 客户端接收到数据报后,以HTTP协议格式进行解包并解析数据,最后在浏览器中展示结果。
2.3.4 URL格式解析(掌握)
格式: 协议类型://主机名[:端口号]/路径/文件名
要求:能够看懂每个字段的含义,比如给一个URL能知道每一个表示的是啥。
完整URL:
https://www.example.com:8080/docs/report.pdf?download=true&version=2#page=3
协议(Scheme):https
- 作用:指定使用加密的HTTP协议,确保数据传输安全
- 扩展:若改为
ftp
则表示文件传输协议,适用于下载场景
主机名(Host):www.example.com
- 作用:标识资源所在的服务器域名,浏览器通过DNS解析为IP地址(如
192.0.2.1
) - 扩展:可包含登录凭证(如
admin:pass@host.com
),但实际因安全风险较少使用
端口(Port)::8080
- 作用:指定服务器监听的非默认端口(HTTP默认80,HTTPS默认443),常用于测试或特殊服务
- 省略情况:若省略则自动使用协议默认端口。
路径(Path):/docs/report.pdf
- 作用:指向服务器上具体资源的物理路径,层级由
/
分隔。本例表示服务器根目录下docs
文件夹中的PDF文件 - 扩展:若路径以
/
结尾(如/docs/
),通常表示目录而非文件
查询参数(Query):?download=true&version=2
- 作用:向服务器传递动态参数,用于过滤或定制资源。本例中:
download=true
:触发文件下载而非在线预览;version=2
:请求第二版文档- 格式规则:参数键值对用
=
连接,多参数以&
分隔。
片段(Fragment):#page=3
- 作用:定位资源内部特定位置,如PDF第3页或网页锚点。仅客户端生效,不发送至服务器
2.3.5 Apache(开源的web服务器软件)
2.3.5.1 Apache作用:处理HTTP请求与内容服务(了解)
-
响应HTTP请求
Apache的核心作用是接收并处理客户端的HTTP请求(如GET/POST),返回HTML页面、图片等静态资源,或通过集成PHP、Python等脚本语言生成动态内容。例如,用户访问电商网站时,Apache可调用后端程序实时生成商品列表页面。 -
支持静态与动态内容
- 静态资源:直接托管HTML、CSS、JavaScript等文件。
- 动态内容:通过模块(如mod_php、mod_perl)调用PHP、Python等解释器处理数据库交互、用户登录等动态逻辑
2.3.5.2Apache的httpd服务程序的主要配置文件及存放位置
配置文件名称 | 路径 |
---|---|
服务目录 | /etc/httpd |
主配置文件 | /etc/httpd/conf/httpd.conf |
默认站点主目录 | /var/www/html |
访问日志 | /var/log/httpd/access_log |
错误日志 | /var/log/httpd/error_log |
2.3.5.3常用文件参数
参数 | 解析 |
---|---|
ServerRoot | Apache 服务运行目录 |
Listen | 监听的端口 |
User | 运行服务的用户 |
Group | 运行服务的组 |
ServerAdmin | 管理员邮箱 |
DocumentRoot | 网站根目录 |
<Directory /rpath> options </Directory> | 网站对应目录的权限 |
ErrorLog | 错误日志 |
Alias /wpath "/rpath" | 创建路径别名 |
参数 | 解析 |
---|---|
LogLevel | 警告级别 |
CustomLog | 默认访问日志格式 |
DirectoryIndex | 默认的索引文件 |
Timeout | 网页超时时间 |
Serveralias | 网站别名 |
<Directory /rpath> options </Directory>内配置参数 (了解)
访问控制选项 | 解析 |
---|---|
Options | 设置特定目录中的服务器特性,具体参数选项的取值见下表 。 |
AllowOverride | 设置访问控制文件.htaccess。 |
Require | 设置 Apache 缺省的访问权限 |
参数 | 解析 |
---|---|
Indexes | 允许目录浏览,当访问的目录中没有 DirectoryIndex 参数指定的网页文件时,会列出目录中的目录清单。 |
Multiviews | 允许内容协商的多重视图。 |
All | 支持除 Multiviews 以外的所有选项,无 Options 语句,默认为 All |
ExecCGI | 允许在该目录下执行 CGI 脚本 |
FollowSysmLinks | 可以允许在该目录下使用符号链接,以访问其他目录 |
Includes | 允许服务器端使用 SSL 技术 |
IncludesNoExec | 允许服务端使用 SSL 技术,但禁止执行 CGI 脚本 |
SymLinksIfOwnerMatch | 目录文件与目录属于同一用户时支持符号链接 |
常见问题(掌握)
问题 | 答案 |
---|---|
如何更换监听端口(listen) | 找到/etc/httpd/conf/httpd.conf 中的Listen 80 ,将 80 修改为其他端口号,如 8080 |
默认的网页存储目录是什么 | DocumentRoot "/var/www/html" ,可修改为其他路径 |
网页首页主页的名称和类型是什么 | 名称如 index,常见类型有 html、php、asp ;默认首页文件设置为DirectoryIndex index.html index.php index.asp ,系统按顺序查找,默认只有index.html ,可添加多个 |
2.3.5.4 实现基于Apache的静态网站发布(掌握)
静态网页URL:http://localhost(这个URL应该由自己的web服务器的地址)
#安装
yum -y install httpd
#写入静态网页内容
sudo echo "hello world!" > /var/www/html/incdex.html
#临时关闭SELinux
sudo setenforce 0
#启动
sudo systemctl start httpd
#访问测试 或者直接在浏览器上 输入http://localhost
curl http://localhost
#结果应该是hello world!
基于端口的:
静态网页URL:http://localhost:8080
#添加虚拟主机配置
sudo vim /ect/httpd/conf.d/8080.conf
配置文件如下:
listen 8080
含义:让 Apache 服务器监听 8080 端口 ,用于接收发送到该端口的网络请求。
作用:指定了服务器对外提供服务的端口,客户端需通过该端口与服务器通信。
<VirtualHost localhost:8080>
与</VirtualHost>
含义:这是一对标签,用于定义一个虚拟主机配置块。其中
localhost:8080
表示该虚拟主机监听本地回环地址localhost
(等同于127.0.0.1
)上的 8080 端口 。作用:通过虚拟主机技术,可在一台物理服务器上运行多个网站或服务,每个虚拟主机可配置不同的域名、端口等,实现资源的灵活分配与管理。
DocumentRoot /var/www/8080
含义:设置该虚拟主机对应的网站根目录为
/var/www/8080
。当客户端请求该虚拟主机下的网页资源时,Apache 会从这个目录中查找对应的文件。作用:明确了网站文件的存放位置,是服务器定位和提供网页内容的基础。
ServerName localhost:8080
含义:指定该虚拟主机的名称,这里设置为
localhost:8080
。它主要用于在多个虚拟主机并存时,帮助 Apache 准确识别客户端请求应匹配到哪个虚拟主机。作用:在基于名称的虚拟主机配置场景中,是区分不同虚拟主机的关键标识之一 。当客户端请求中携带的域名或主机名与
ServerName
匹配时,请求会被路由到对应的虚拟主机处理。
#创建虚拟主机对应的根目录
sudo mkdir /var/www/8080
#写入文件内容
sudo echo "This is 8080" > /var/www/8080/index.html
#如果权限不够记得修改权限,这里简单设成777
sudo chmod 777 /var/www/8080/index.html
#重启服务
sudo systemctl restart httpd
#测试
curl http://localhost:8080
结果如下:
相关文章:

Linux复习笔记(三) 网络服务配置(web)
遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。 二、网络服务配置 2.3 web服务配置 2.3.1通信基础:HTTP协议与C/S架构(了解) HTTP协议的核心作用 Web服务基于HTTP/HTTPS协议实现客户端ÿ…...

springboot旅游小程序-计算机毕业设计源码76696
目 录 摘要 1 绪论 1.1研究背景与意义 1.2研究现状 1.3论文结构与章节安排 2 基于微信小程序旅游网站系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统…...

uniapp自定义导航栏搭配插槽
<uni-nav-bar dark :fixed"true" shadow background-color"#007AFF" left-icon"left" left-text"返回" clickLeft"back"><view class"nav-bar-title">{{ navBarTitle }}</view><block v-slo…...

MFC listctrl修改背景颜色
在 MFC 中修改 ListCtrl 控件的行背景颜色,需要通过自绘(Owner-Draw)机制实现。以下是详细的实现方法: 方法一:通过自绘(Owner-Draw)实现 步骤 1:启用自绘属性 在对话框设计器中选…...
Kotlin跨平台Compose Multiplatform实战指南
Kotlin Multiplatform(KMP)结合 Compose Multiplatform 正在成为跨平台开发的热门选择,它允许开发者用一套代码构建 Android、iOS、桌面(Windows/macOS/Linux)和 Web 应用。以下是一个实战指南,涵盖核心概念…...

SpringBoot+Dubbo+Zookeeper实现分布式系统步骤
SpringBootDubboZookeeper实现分布式系统 一、分布式系统通俗解释二、环境准备(详细版)1. 软件版本2. 安装Zookeeper(单机模式) 三、完整项目结构(带详细注释)四、手把手代码实现步骤1:创建父工…...
一个极简单的 VUE3 + Element-Plus 查询表单展开收起功能组件
在管理系统页面开发时,会遇到一个简单又令人头痛的问题,那就是:搜索页面太多,搜索表单项内容太多。对于过多的内容,往往采取折叠的形式,仅展示部分内容,需要时展开查看全部。 如果在程序设计时…...
es 里的Filesystem Cache 理解
文章目录 背景问题1,Filesystem Cache 里放的是啥问题2,哪些查询它们会受益于文件系统缓存问题3 查询分析 背景 对于es 优化来说常常看到会有一条结论给,给 JVM Heap 最多不超过物理内存的 50%,且不要超过 31GB(避免压…...

Linux进程10-有名管道概述、创建、读写操作、两个管道进程间通信、读写规律(只读、只写、读写区别)、设置阻塞/非阻塞
目录 1.有名管道 1.1概述 1.2与无名管道的差异 2.有名管道的创建 2.1 直接用shell命令创建有名管道 2.2使用mkfifo函数创建有名管道 3.有名管道读写操作 3.1单次读写 3.2多次读写 4.有名管道进程间通信 4.1回合制通信 4.2父子进程通信 5.有名管道读写规律ÿ…...

精品可编辑PPT | 全面风险管理信息系统项目建设风控一体化标准方案
这份文档是一份全面风险管理信息系统项目建设风控一体化标准方案,涵盖了业务架构、功能方案、系统技术架构设计、项目实施及服务等多个方面的详细内容。方案旨在通过信息化手段提升企业全面风险管理工作水平,促进风险管理落地和内部控制规范化࿰…...
YOLOv8网络结构
YOLOv8的网络结构由输入端(Input)、骨干网络(Backbone)、颈部网络(Neck)和检测头(Head)四部分组成。 YOLOv8的网络结构如下图所示: 在整个系统架构中,图像首先进入输入处理模块,该模块承担着图像预处理与数据增强的双重任务。接着,…...
数组对象 按照对象中的某个字段排序
在JavaScript中,可以使用数组的sort()方法按照对象中的某个字段对数组进行排序。 按照对象中的某个字段对数组进行排序: 基本排序方法 升序排序 const array [{ name: John, age: 25 },{ name: Jane, age: 21 },{ name: Bob, age: 30 } ];// 按照age字…...

笔记本电脑升级实战手册【扩展篇1】:flash id查询硬盘颗粒
文章目录 前言:一、硬盘颗粒介绍1、MLC(Multi-Level Cell)2、TLC(Triple-Level Cell)3、QLC(Quad-Level Cell) 二、硬盘与主控1、主控介绍2、主流主控厂家 三 、硬盘颗粒查询使用flash id工具查…...

AutoDL租用服务器教程
在跑ai模型的时候,容易遇到算力不够的情况。此时便需要租用服务器。autodl是个较为便宜的服务器租用平台,h20仅需七点几元每小时。下面是简单的介绍。 打开网站AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL,并登录账号 登录后ÿ…...
四、STM32 HAL库API完全指南:从功能分类到实战示例
STM32 HAL库API完全指南:从功能分类到实战示例 一、HAL库API的总体架构 STM32 HAL库(Hardware Abstraction Layer)作为STMicroelectronics推出的统一驱动框架,提供了覆盖所有STM32外设的标准化API。HAL库的API设计遵循严格的分层…...
MySQL全量、增量备份与恢复
目录 数据备份 一、数据备份类型 二、常见备份方法 扩展:GTID与XtraBackup 一、GTID(全局事务标识符) 1. 定义与核心作用 2. GTID在备份恢复中的意义 3. GTID配置与启用 二、XtraBackup的意义与核心价值 1. 定…...
fastboot 如何只刷system.img 分区
在 fastboot 模式下只刷入 system.img 分区,可以按照以下步骤操作: 1. 确保设备已进入 Fastboot 模式 连接设备到电脑,并确保已进入 Fastboot/Bootloader 模式:adb reboot bootloader或手动进入(通常为 电源键 音量…...
连接词化归律详解
1. 连接词化归律的基本概念 连接词化归律(也称为归结原理)是数理逻辑中用于简化逻辑表达式的重要方法,它允许我们将复杂的逻辑表达式转化为更简单的等价形式,特别是转化为合取范式(CNF)或析取范式(DNF)。 核心思想 连接词化归律基于一系列逻辑等价关系…...
《构建社交应用用户激励引擎:React Native与Flutter实战解析》
React Native凭借其与JavaScript和React的紧密联系,为开发者提供了一个熟悉且灵活的开发环境。在构建用户等级体系时,它能够充分利用现有的前端开发知识和工具。通过将用户在社交应用中的各种行为进行量化,比如发布动态的数量、点赞评论的次数…...

goner/otel 在Gone框架接入OpenTelemetry
文章目录 背景与意义快速上手:五步集成 OpenTelemetry运行效果展示代码详解与实践目录结构说明组件加载(module.load.go)业务组件示例(your_component.go)程序入口(main.go) 进阶用法与最佳实践…...

杨校老师项目之基于SSM与JSP的鲜花销售系统-【成品设计含文档】
基于SSMJSP鲜花商城系统 随着电子商务的快速发展,鲜花在线销售已成为一种重要的消费模式。本文设计并实现了一个基于JSP技术的鲜花销售管理系统,采用B/S架构,使用SSM框架进行开发,并结合Maven进行项目依赖管理。系统分为前台用户模…...

springboot集成langchain4j实现票务助手实战
前言 看此篇的前置知识为langchain4j整合springboot,以及springboot集成langchain4j记忆对话。 Function-Calls介绍 langchain4j 中的 Function Calls(函数调用)是一种让大语言模型(LLM)与外部工具(如 A…...

Feed流推送之订阅推送
分类 feed流分为TimeLine和智能排序,前者不对内容进行过滤,一般根据发布的时间来进行排序,一般用于好友动态或者推送关注的人的消息,而后者一般有着复杂的算法,可以根据算法智能地向目标用户推送内容,例如…...

wordpress自学笔记 第四节 商城菜单的添加和修改美化
wordpress自学笔记 摘自 超详细WordPress搭建独立站商城教程-第四节 商城菜单的添加和修改美化,2025 WordPress搭建独立站商城#WordPress建站教程https://www.bilibili.com/video/BV1UwwgeuEkK?spm_id_from333.788.videopod.sections&vd_sourcea0af3bbc6b6d…...

GPU L2 Cache一致性协议对科学计算的影响研究
点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。 一、GPU缓存层级革命:从Volta到Hopper的演进图谱 1.1 架构级缓存策略对比 Vo…...
C++中类中const知识应用详解
下面将从**const 成员**、const 成员函数、const 对象、mutable、constexpr 等方面,逐一详解 C 类中常见的 const 用法及注意事项,并配合示例。 一、const 数据成员 必须在初始化列表中初始化 class A {const int x; // const 成员 public:A(int v) :…...

【速写】KV-cache与解码的再探讨(以束搜索实现为例)
文章目录 1 Beam Search 解码算法实现2 实现带KV Cache的Beam Search解码3 关于在带kv-cache的情况下的use_cache参数 1 Beam Search 解码算法实现 下面是一个使用PyTorch实现的beam search解码算法: 几个小细节: 束搜索可以加入length_penalty&#…...

(网络)应用层协议-HTTPS
1.HTTPS是什么? HTTPS是应用层的一种协议,是在HTTP的基础上进行了加密层的处理。 HTTP协议的内容都是按照文本的形式进行传输的,所以呢就很容易被别人知道传输的是什么。 我们在了解了TCP/IP之后是知道我们的数据在传输的过程中是通过路由器进…...

vue3: pdf.js 3.4.120 using javascript
npm install pdfjs-dist3.4.120 项目结构: pdfjsViewer.vue <template><div><div v-if"loading" class"flex justify-center items-center py-8"><div class"animate-spin rounded-full h-12 w-12 border-b-2 borde…...
Spark目前支持的部署模式。
一、本地模式(Local Mode) 特点: 在单台机器上运行,无需集群。主要用于开发、测试和调试。所有组件(Driver、Executor)在同一个 JVM 中运行。 启动命令: bash spark-submit --master local[*]…...