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环境。
    JSPSun公司推出,基于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: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请求与内容服务(了解)
  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常用文件参数
参数解析
ServerRootApache 服务运行目录
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

结果如下: 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/79592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9.1.领域驱动设计

目录 一、领域驱动设计核心哲学 战略设计与战术设计的分野 • 战略设计&#xff1a;限界上下文&#xff08;Bounded Context&#xff09;与上下文映射&#xff08;Context Mapping&#xff09; • 战术设计&#xff1a;实体、值对象、聚合根、领域服务的构建原则 统一语言&am…

CSS Layer 详解

CSS Layer 详解 前言 最近在整理CSS知识体系时&#xff0c;发现Layer这个特性特别有意思。它就像是给样式规则提供了一个专属的「VIP通道」&#xff0c;让我们能更优雅地解决样式冲突问题。今天我就用最通俗的语言&#xff0c;带大家全面了解这个CSS新特性。 什么是CSS Laye…

【Dv3Admin】工具视图配置文件解析

在开发后台管理系统时,处理复杂的 CRUD 操作是常见的需求。Django Rest Framework(DRF)通过 ModelViewSet 提供了基础的增删改查功能,但在实际应用中,往往需要扩展更多的功能,如批量操作、权限控制、查询优化等。dvadmin/utils/viewset.py 模块通过继承并扩展 ModelViewS…

‌云原生CAE软件

‌云原生CAE软件‌是一种在设计和实现时就充分考虑了云环境特点的软件&#xff0c;能够充分利用云资源&#xff0c;实现高效、可扩展和灵活的仿真分析。 定义和特点 云原生CAE软件是一种在云端构建和运行的CAE&#xff08;Computer Aided Engineering&#xff0c;计算机辅助工…

若依定制pdf生成实战

一、介绍 使用 Java Apache POI 将文字渲染到 Word 模板是一种常见的文档自动化技术&#xff0c;广泛应用于批量生成或定制 Word 文档的场景。使用aspose可以将word转成pdf从而达到定制化pdf的目的。 参考文档&#xff1a;java实现Word转Pdf&#xff08;Windows、Linux通用&a…

Redis再次开源!reids8.0.0一键安装脚本分享

准备工作 1. 下载 Redis 8 安装包 # Redis 8.0.0 示例&#xff08;请替换为实际版本&#xff09; http://download.redis.io/releases/redis-8.0.0.tar.gz一、脚本内容&#xff1a; #!/usr/bin/python # -*- coding: UTF-8 -*-import os import time import shutil import s…

stm32之BKP备份寄存器和RTC时钟

目录 1.时间戳1.1 Unix时间戳1.2 UTC/GMT1.3 时间戳转换**1.** time_t time(time_t*)**2.** struct tm* gmtime(const time_t*)**3.** struct tm* localtime(const time_t*)**4.** time_t mktime(struct tm*)**5.** char* ctime(const time_t*)**6.** char* asctime(const stru…

Android学习总结之算法篇八(二叉树和数组)

路径总和 import java.util.ArrayList; import java.util.List;// 定义二叉树节点类 class TreeNode {int val;TreeNode left;TreeNode right;// 构造函数&#xff0c;用于初始化节点值TreeNode(int x) {val x;} }public class PathSumProblems {// 路径总和 I&#xff1a;判…

Scala和Spark的介绍

Scala 1. Slaca的发展过程 由洛桑联邦理工学院的马丁 奥德斯在 2001 年基于 Funnel 的工作开始设计&#xff0c;设计初衷是想集成面向对象编程和函数式编程的各种特性。 Scala 是一种纯粹的面向对象的语言&#xff0c;每个值都是对象。 Scala 也是一种函数式语言&#xff0…

配置Hadoop集群环境-使用脚本命令实现集群文件同步

在 Hadoop 集群环境中&#xff0c;确保各节点配置文件一致至关重要。以下是使用 rsync 结合 SSH 实现集群文件同步的脚本方案&#xff0c;支持批量同步文件到所有节点&#xff1a; 1. 前提条件 所有节点已配置 SSH 免密登录主节点&#xff08;NameNode&#xff09;能通过主机…

Redis能保证数据不丢失吗之RDB

有了AOF为什么还需要RDB? 上一篇我们介绍了Redis AOF持久化策略。Redis能保证数据不丢失吗之AOF AOF虽然能实现持久化,但由于AOF恢复数据的时候是一条一条命令重新执行的,但数据量大的时候,Redis数据恢复的时间就会很久,这会导致Redis在重启的时候,有一大段时间的不可用…

AI浪潮下的艺术突围战:对话《名人百科数据库》执行主编刘鑫炜

当AI生成的画作在国际赛事中摘冠&#xff0c;当算法推荐主导艺术传播路径&#xff0c;技术革命正以前所未有的速度重塑艺术生态。我们独家专访深耕艺术推广领域的刘鑫炜主编&#xff0c;探讨当代艺术家在智能时代的生存法则。 图为《名人百科数据库》执行主编刘鑫炜 技术重构创…

Python 实现失败重试功能的几种方法

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 方法 1:手动 `while` 循环 + 异常捕获方法 2:使用 `tenacity` 库(推荐)方法 3:使用 `retrying` 库(旧版,已停止维护)方法 4:`requests` 自带重试(适用于 HTTP 请求)方法 5:自定义装饰器(灵活控制)方法…

2025年渗透测试面试题总结-渗透测试红队面试七(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 渗透测试红队面试七 一百八十一、Shiro漏洞类型&#xff0c;721原理&#xff0c;721利用要注意什么&am…

Unity动画系统使用整理 --- Playable

​​Playable API​​ 是一个强大的工具&#xff0c;用于更灵活地控制动画、音频、脚本等时间轴内容的播放和混合。它提供了比传统 Animator 更底层、更可控的方式管理时间轴行为&#xff0c;尤其适合复杂动画逻辑或动态内容组合的场景。 优点&#xff1a; 1.Playables API 支…

基于STM32、HAL库的BMP390L气压传感器 驱动程序设计

一、简介: BMP390L 是 Bosch Sensortec 生产的一款高精度气压传感器,专为需要精确测量气压和海拔高度的应用场景设计。BMP390L 具有更低的功耗、更高的精度和更快的响应速度。 二、硬件接口: BMP390L 引脚STM32L4XX 引脚说明VDD3.3V电源GNDGND地SCLPB6 (I2C1 SCL)I2C 时钟线…

Arduino快速入门

Arduino快速入门指南 一、硬件准备 选择开发板&#xff1a; 推荐使用 Arduino UNO&#xff08;兼容性强&#xff0c;适合初学者&#xff09;&#xff0c;其他常见型号包括NANO&#xff08;体积小&#xff09;、Mega&#xff08;接口更多&#xff09;。准备基础元件&#xff1a…

破解 Qt QProcess 在 Release 模式下的“卡死”之谜

在使用 Qt 的 QProcess 以调用外部 ffmpeg/ffprobe 进行音视频处理时&#xff0c;常见的工作流程是&#xff1a; gatherParams&#xff1a;通过 ffprobe 同步获取媒体文件的参数&#xff08;分辨率、采样率、声道数、码率等&#xff09;。 reencode&#xff1a;逐个文件调用 f…

MySQL 中 UPDATE 结合 SELECT 和 UPDATE CASE WHEN 的示例

概述 以下是 MySQL 中 UPDATE 结合 SELECT 和 UPDATE CASE WHEN 的示例&#xff1a; 一、UPDATE 结合 SELECT&#xff08;跨表更新&#xff09; 场景&#xff1a;根据 orders 表中的订单总金额&#xff0c;更新 users 表中用户的 total_spent 字段。 -- 创建测试表 CREATE T…

【MCP】魔搭社区MCP服务(高德地图、everything文件搜索)

【MCP】魔搭社区MCP服务&#xff08;高德地图、everything文件搜索&#xff09; 1、上手使用2、环境配置&#xff08;1&#xff09;cherry-studio配置&#xff08;2&#xff09;添加魔搭大模型服务&#xff08;如果已经设置了其他大模型服务&#xff0c;可跳过&#xff09;&…