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.pswp.cn/web/79592.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79592.shtml
英文地址,請注明出處:http://en.pswp.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;&…