Linux复习笔记(三) 网络服务配置(web)

遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。

二、网络服务配置

2.3 web服务配置

2.3.1通信基础:HTTP协议与C/S架构(了解)

  1. ​HTTP协议的核心作用​

    Web服务基于HTTP/HTTPS协议实现客户端(浏览器)与服务器的通信。HTTP协议定义了两类报文:

    • ​请求报文​:包含请求行(方法如GET/POST、URL路径、协议版本)、请求头(如User-Agent、Cookie)、请求体(如表单数据)
    • ​响应报文​:包含状态行(如200 OK、404 Not Found)、响应头(如Content-Type)、响应体(如HTML页面或JSON数据)
  2. ​无状态性与状态管理​

    HTTP协议本身无状态,但通过Cookie(客户端存储)和Session(服务器端存储)实现会话状态跟踪。例如,用户登录后,服务器通过Set-Cookie头部下发Session ID,客户端后续请求自动携带该ID以保持登录状态。

2.3.2web 服务基础概览(了解)

  1. ​基础架构​

    Web服务基于​​C/S(客户端-服务器)架构​​,服务器负责管理资源、响应客户端请求,客户端负责接收并展示内容。

  2. ​服务分类(掌握)​

    • ​静态Web服务​:内容固定,不随用户请求变化。
    • ​动态Web服务​:内容实时生成,支持交互性(如用户登录、数据库查询)。
  3. ​主流动态语言​

    语言 特点 部署环境
    ASP/ASP.net 微软开发,集成Windows生态,适合企业级应用。 通常部署于Windows服务器。
    PHP 开源跨平台,语法融合C/Java/Perl,适合快速开发轻量级应用。 支持Linux/Windows,需安装PHP环境。
    JSP Sun公司推出,基于Java,可结合Servlet/JavaBean实现复杂功能。 需安装JSP服务包(如Tomcat),兼容跨平台。
  4. ​服务器环境依赖​

    • ​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:[email protected]),但实际因安全风险较少使用

​端口(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请求与内容服务(了解)
  1. ​响应HTTP请求​

    Apache的核心作用是接收并处理客户端的HTTP请求(如GET/POST),返回HTML页面、图片等静态资源,或通过集成PHP、Python等脚本语言生成动态内容。例如,用户访问电商网站时,Apache可调用后端程序实时生成商品列表页面。

  2. ​支持静态与动态内容​

    • ​静态资源​:直接托管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服务器的地址)

bash 复制代码
#安装
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

bash 复制代码
#添加虚拟主机配置
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 匹配时,请求会被路由到对应的虚拟主机处理。

bash 复制代码
#创建虚拟主机对应的根目录
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

结果如下:

相关推荐
忧虑的乌龟蛋16 分钟前
嵌入式Linux I2C驱动开发详解
linux·驱动开发·嵌入式·iic·i2c·读数据·写数据
I_Scholar1 小时前
OPENSSL-1.1.1的使用及注意事项
linux·ssl
DanB241 小时前
Java笔记4
java·开发语言·笔记
Johny_Zhao1 小时前
K8S+nginx+MYSQL+TOMCAT高可用架构企业自建网站
linux·网络·mysql·nginx·网络安全·信息安全·tomcat·云计算·shell·yum源·系统运维·itsm
稳联技术2 小时前
Ethercat转Profinet网关如何用“协议翻译术“打通自动化产线任督二脉
linux·服务器·网络
烟雨迷2 小时前
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
linux·服务器·学习·编辑器·vim
Bruk.Liu2 小时前
Linux 上安装RabbitMQ
linux·服务器·rabbitmq
UpUpUp……3 小时前
Linux--JsonCpp
linux·运维·服务器·c++·笔记·json
qq_5982117573 小时前
Unity.UGUI DrawCall合批笔记
笔记·unity·游戏引擎
Willis_m3 小时前
Linux 服务器用 SSH 拉取多个 Git 工程
linux·服务器·git·ssh