web,Apache簡述

一.HTTP請求訪問的完整過程

1.建立連接

2.接收請求

3.處理請求

4.訪問資源

服務器獲取請求報文中請求的資源web服務器,即存放了web資源的服務器,負責向請求者提供對方請求的靜態資源,或動態運行后生成的資源

靜態資源:不需要服務器二次加工處理,直接將文件交給客戶端

? ? ? ? ? ? ? ? ? txt,jpg,視頻

動態資源:需要服務器二層加工處理后,將加工后的結果傳給客戶端

? ? ? ? ? ? ? ? ? php,java,python

web軟件(apache,nginx)不太擅長處理動態資源
5.構建響應報文

6.發送響應報文(通過網卡發送給客戶端)

7.記錄日志

二.http版本

0.9:只有下載(get)

1.0:上傳,下載,不支持長連接

1.1:支持長連接

三.http協議狀態碼

200:一切正常

301:永久重定向(緩存在主機上)

302:臨時重定向(服務器會再解析)

401:用戶名或密碼驗證錯誤

403:拒絕訪問,客戶端ip或主機名被拉黑

404:請求的文件不存在,客戶端請求的URL路徑有誤,服務器相對應的路徑沒有該網頁文件

500:服務器內部錯誤
?

502:錯誤網關,代理服務器接收到來自后端服務器的無效/錯誤響應導致的

503:服務不可用,服務器過載或正在維護(名機) 導致的

504:網關超時,代理服務器無法在規定的時間內收到后端服務器的響應(響應超時) 導致的

四.http方法

HTTP 支持幾種不同的請求命令,這些命令被稱為 HTTP 方法(HTTP method)。

每條 HTTP 請求報文都包含一個方法, 告訴服務器要執行什么動作,包括:獲取一個頁面,運行一個網關程序,刪除一個文件等。

最常用的獲取資源的方法是 GET、POST、PUT。

HTTP 方法描述
GET? ?對服務器資源獲取的簡單請求
PUT向服務器提交數據,以修改數據
DELETE刪除服務器上的某些資源
POST??用于發送包含用戶提交數據的請求
HEAD??請求頁面的首部,獲取資源的元信息

GET請求會向數據庫發索取數據的請求,從而來獲取信息,該請求不會產生副作用。無論進行多少次操作,結果都是一樣的。

PUT請求是向服務器端發送數據的,從而改變信息,無論進行多少次PUT操作,其結果并沒有不同,與GET不同。

POST請求同PUT請求類似,都是向服務器端發送數據的,但是該請求會改變數據的種類等資源,幾乎目前所有的提交操作都是用POST請求的。

DELETE請求顧名思義,就是用來刪除某一個資源的。

GET 和 POST 比較

GET 方法

從指定的服務器上獲得數據
GET請求能被緩存
GET請求會保存在瀏覽器的瀏覽紀錄里
GET請求有長度的限制
主要用于獲取數據
查詢的字符串會顯示在URL后綴中,不安全
POST 方法

提交數據給指定服務器處理
POST請求不能被緩存
POST請求不會保存在瀏覽器的瀏覽紀錄里
POST請求沒有長度限制
查詢的字符串不會顯示在URL中,比較安全

五.HTTP請求流程分析

用戶在瀏覽器輸入URL訪問時,發起HTTP請求報文,請求中包括請求行、請求頭、請求體,服務器收到請求后返回響應報文,包括狀態行、響應頭、響應體。

請求報文

請求行:請求行由請求方法、URL 以及協議版本三部分組成。
請求頭:請求頭為請求報文添加了一些附加信息,由“名/值”對組成,每行一對,名和值之間使用冒號分隔。
空行:請求頭部的最后會有一個空行,表示請求頭部結束,接下來為請求體,這一行非常重要,必不可少。
請求體:請求體是請求提交的參數,GET 方法已經在 URL 中指明了參數,所以提交時沒有數據。POST 方法提交的參數在請求體中。
常用的請求頭

請求頭描述
Host接受請求的服務器地址,可以是Ip:端口號,也可以是域名
User-Agent發送請求的應用程序名稱
Connection指定與連接相關的屬性,如Connection:Keep-Alive
Accept-Charset通知服務端可以發送的編碼格式
Accept-Encoding通知服務端可以發送的數據壓縮格式
Accept-Language?通知服務端可以發送的語言

響應報文

狀態行:狀態行由協議版本,狀態碼,狀態碼描述三部分組成。
響應頭:響應頭與請求頭部類似,為響應報文添加了一些附加信息。
空行:響應頭部的最后會有一個空行,表示響應頭部結束。
響應體:服務器返回的相應 HTML 數據,瀏覽器對其解析后顯示頁面。
常見響應頭:

響應頭描述
Server服務器應用程序軟件的名稱和版本
Content-Type?響應正文的類型(描述是圖片還是二進制字符串)
Content-Length響應正文長度
Content-Charset響應正文使用的編碼
Content-Encoding響應正文使用的數據壓縮格式
Content-Language?響應正文使用的語言

六.Apache

一.Apache基礎知識

Apache(音譯為阿帕奇)是世界使用排名第一的Web服務器軟件。 它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。 快速、可靠并且可通過簡單的API擴充,將Perl/Python等解釋器編譯到服務器中。

Apache HTTP Server 之所以受到眾多企業的青睞,得益于其代碼開源、跨平臺、功能模塊化、可靈活定制等諸多優點,不僅性能穩定,在安全性方面的表現也十分出色。

二.Apache配置文件位置與基操

/etc/httpd/conf/httpd.conf 
#主配置文件/etc/httpd/conf.d/*.conf 
#子配置文件/etc/httpd/conf.d/conf.modules.d/ 
#模塊加載的配置文件httpd -t 或 apache2 -t 
#檢查配置語法/usr/lib/systemd/system/httpd.service
#服務單元文件/etc/sysconfig/httpd
#配置文件
systemctl enable|disable httpd.servicesystemctl {start|stop|restart|status|reload} httpd.serviceapachectl start|stop|restart|configtest#服務控制和啟動/var/www/html
#站點網頁文檔根目錄/etc/httpd/modules
/usr/lib64/httpd/modules
#模塊文件路徑/usr/sbin/httpd
#主服務器程序文件/etc/httpd/run/httpd.pid 
#主進程文件/var/log/httpdaccess_log:        #訪問日志
error_log:        #錯誤日志#日志文件目錄

三.LAMP架構

1.LAMP平臺概述

LAMP架構是目前成熟的企業網站應用模式之一,指的是協同工作的一整臺系統和相關軟件,能夠提供動態web站點服務及其應用開發環境

LAMP是一個縮寫詞,具體包括Linux操作系統,Apache網站服務器,MySQL數據庫服務器,PHP(或perl,Python)網頁編程語言

2.LAMP各組件主要作用
  1. (平臺)Linux:作為LAMP架構的基礎,提供用于支撐Web站點的操作系統,能夠與其他三個組件提供更好的穩定性,兼容性(AMP組件也支持Windows、UNIX等平臺) 。
  2. (前臺)Apache:作為LAMP架構的前端,是一款功能強大,穩定性好的Web服務器程序,該服務器直接面向用戶提供網站訪問,發送網頁,圖片等文件內容。
  3. (后臺)MySQL:作為LAMP架構的后端,是一款流行的開源關系數據庫系統。在企業網站、業務系統等應用中,各種賬戶信息、產品信息,客戶資料、業務數據等都可以存儲到MySQL數據庫,其他程序可以通過SQL語句來查詢,更改這些信息。
  4. (中間連接)PHP/Perl/Python:作為三種開發動態網頁的編程語言,負責解釋動態網頁文件,負責溝通Web服務器和數據庫系統以協同工作,并提供Web應用程序的開發和運行環境。其中PHP是一種被廣泛應用的開放源代碼的多用途腳本語言,它可以嵌入到HTML中,尤其適合于Web應用開發。
3.構建LAMP平臺順序
  1. 在構建LAMP平臺時,各組件的安裝順序依次為Linux,Apache,MySQL,PHP
  2. 其中Apache和MySQL的安裝并沒有嚴格的順序要求,而PHP環境的安裝一般放到最后,負責溝通web服務器和數據庫系統以協同工作

四.Apache的三種工作模式

Apache的三種工作模式分別是:prefork、worker、event。

1. prefork模式(默認模式)

profork模式實現了一種非線程、預派生的Web服務器,用的是進程去處理請求,所以比較容易消耗內存,但是穩定性好,某個進程出現問題不會影響到其他請求。

2. worker模式

worker模式使用多個子進程,每個子進程有多個線程、由于使用的是線程去處理請求,消耗內存小,適合高流量的請求,但是如果某個進程出現問題,那么這個進程下的線程都會出現問題,即穩定性不是很好。

3. event模式

event模式為了解決keep-alive保持長連接出現的一種工作模式,使用keep-alive長連接的時候,某個線程會一直被占用,即使中間沒有請求,需要等到超時才會被釋放,所以這個時候就出現了event的工作模式。


?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212562.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212562.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212562.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言 內聯函數 + 遞歸函數

函數分類 內聯函數 1)內聯函數在編譯時將函數的代碼直接插入到調用它的地方,而不是通過函數調用的方式執行,從而減少了函數調用的開銷,提高了代碼的執行速度 2)使用 inline 關鍵字來聲明 3)將函數聲明為內聯…

小目標檢測模型設計的一點思考

1. 小目標的特性 目標之間的交疊概率比較低,即使有交疊,其IoU多數情況下也是比較小的 AI-TOD Tiny Person Dateset 小目標自身的紋理顯著度有強弱區別,但是總體來說紋理特征都較弱,很多時候需要借助一定的圖像上下文來幫助確認 …

Java解決島嶼周長問題

Java解決島嶼周長問題 01 題目 給定一個 row x col 的二維網格地圖 grid ,其中:grid[i][j] 1 表示陸地, grid[i][j] 0 表示水域。 網格中的格子 水平和垂直 方向相連(對角線方向不相連)。整個網格被水完全包圍&am…

ssm校園論壇管理系統項目分享

校園論壇管理系統是基于java編程語言,mysql數據庫,ssm框架和idea工具開發,本系統主要分為學生用戶,管理員兩個角色,其中用戶可以注冊登陸系統,在線發帖,查看欄目帖子,回復帖子&#…

某音上很火的圣誕樹分享

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站。 效果截圖&#xff08;這里不給動態了&#xff0c;某音到處都是了&#xff09;&#xff1a; 源代碼&#xff1a; <script src"…

Spring Boot 3 集成 MyBatis詳解

MyBatis是一款開源的持久層框架&#xff0c;它極大地簡化了與數據庫的交互流程。與類似Hibernate的ORM框架不同&#xff0c;MyBatis更具靈活性&#xff0c;允許開發者直接使用SQL語句與數據庫進行交互。Spring Boot和MyBatis分別是兩個功能強大的框架&#xff0c;它們的協同使用…

Linux shell編程學習筆記34:eval 命令

0 前言 在JavaScript語言中&#xff0c;有一個很特別的函數eval&#xff0c;eval函數可以將字符串當做 JavaScript 代碼執行&#xff0c;返回表達式或值。 在Linux Shell 中也提供了內建命令eval&#xff0c;它是否具有JavaScript語言中eval函數的功能呢&#xff1f; 1 eval命…

GPIO的使用--USART串口通信--傳感器控制數據

目錄 一、串口通信 1、概念 2、原理圖 3、使用步驟 &#xff08;1&#xff09;尋找串口位置 &#xff08;2&#xff09;確定引腳編號 &#xff08;3&#xff09;編寫代碼 4、實驗結果 實驗代碼 main.c usart.c usart.h 一、串口通信 1、概念 串行接口是一種可以將…

DiffiT

本文首發于AIWalker&#xff0c;歡迎關注。 https://arxiv.org/abs/2312.02139 https://github.com/NVlabs/DiffiT 擴散模型以其強大的表達能力和高樣本質量在許多領域得到了新的應用。對于樣本生成&#xff0c;這些模型依賴于通過迭代去噪生成圖像的去噪神經網絡。然而&#x…

SAP UI5 walkthrough step8 Translatable Texts

在這個章節&#xff0c;我們會將一些文本常量獨立出一個資源文件 這樣的話&#xff0c;可以方便這些文本常量被翻譯成任意的語言 這種國際化的操作&#xff0c;我們一般命名為i18n 新建一個文件i18n.properties webapp/i18n/i18n.properties (New) showHelloButtonTextSay …

vue3項目實現文檔 JSON 格式和 Excel 表格的在線預覽,(智能搜索,未驗證)

若要實現文檔 JSON 格式和 Excel 表格的在線預覽&#xff0c;你可以使用第三方庫來實現。對于文檔 JSON 格式&#xff0c;你可以使用 vue-json-pretty 庫來展示美觀的 JSON 數據&#xff1b;對于 Excel 表格&#xff0c;你可以使用 vue-excel-viewer 庫來完成在線預覽。下面是一…

Java、Spring Boot和事務管理

引言 在現代應用程序開發中&#xff0c;確保數據的一致性和可靠性是至關重要的。Java作為一種強大的編程語言&#xff0c;通過其廣泛的生態系統和強大的庫支持&#xff0c;為開發人員提供了構建高性能應用程序的豐富工具。Spring Boot是一個基于Spring框架的項目&#xff0c;它…

圖像的均方差和信噪比計算

圖像的均方差和信噪比計算 一、均方差1、公式2、代碼 二、信噪比1、公式2、代碼 圖像的均方差和信噪比公式及代碼&#xff0c;代碼基于opencv和C實現。 一、均方差 均方誤差&#xff0c;英文簡稱&#xff1a;MSE&#xff0c;英文全稱&#xff1a;“Mean Square Error”。 衡量…

接口測試-Jmeter使用

一、線程組 1.1 作用 線程組就是控制Jmeter用于執行測試的一組用戶 1.2 位置 右鍵點擊‘測試計劃’-->添加-->線程(用戶)-->線程組 1.3 特點 模擬多人操作線程組可以添加多個&#xff0c;多個線程組可以并行或者串行取樣器(請求)和邏輯控制器必須依賴線程組才能…

「Verilog學習筆記」多bit MUX同步器

專欄前言 本專欄的內容主要是記錄本人學習Verilog過程中的一些知識點&#xff0c;刷題網站用的是牛客網 輸入數據暫存在data_reg中&#xff0c;使能信號data_en用打兩拍的方式跨時鐘域傳輸到時鐘域B&#xff0c;最后data_out根據使能信號更新數據。data_en信號在A時鐘域用一個D…

Redis | Redis入門學習介紹及常見原理剖析

關注wx&#xff1a;CodingTechWork Redis介紹 概述 Redis是NoSQL&#xff0c;是key-value分布式內存數據庫。 緩存 緩存是將數據從慢的介質換到快的介質上&#xff0c;提高讀寫效率和性能&#xff0c;并降低數據庫的讀寫成本。內存的速度一般都遠遠大于硬盤的速度&#xf…

三個臭皮匠(ctr,nerdctl,crictl)頂一個諸葛亮(docker)

文章目錄 containerd簡介 nerdctl簡介安裝精簡 Minimal 安裝完整Full 安裝啟動服務 命令參數容器運行容器列出容器詳情容器日志容器進入容器停止容器刪除鏡像列表鏡像拉取鏡像標簽鏡像導出鏡像導入鏡像刪除鏡像構建配置tab鍵配置加速配置倉庫http方式https方式 ctr簡介命令參數…

12、虛函數的應用、虛析構函數

12、虛函數的應用、虛析構函數 運行時類型信息(RTTI)動態類型轉換(dynamic_cast)typeid操作符 虛 析構函數空虛析構函數 一個類中&#xff0c;除了構造函數和靜態成員函數外&#xff0c;任何函數都可以被聲明為虛函數 運行時類型信息(RTTI) 動態類型轉換(dynamic_cast) 用于…

AMC8美國數學競賽歷年真題集在線練習操作指南和2024年備考建議

今天是2023年12月10日&#xff0c;距離2024年的AMC8美國數學競賽的舉辦還有40天時間。據六分成長了解&#xff0c;有一些孩子報名參加了AMC8的機構培訓班系統學習&#xff0c;也有一些孩子選擇了自己自學備考。 有家長問AMC8的培訓是否一定要參加機構的培訓班學習&#xff1f;…

基于SpringBoot+thymeleaf協同過濾算法山河旅游推薦系統(Java畢業設計)

大家好&#xff0c;我是DeBug&#xff0c;很高興你能來閱讀&#xff01;作為一名熱愛編程的程序員&#xff0c;我希望通過這些教學筆記與大家分享我的編程經驗和知識。在這里&#xff0c;我將會結合實際項目經驗&#xff0c;分享編程技巧、最佳實踐以及解決問題的方法。無論你是…