在建立通訊連線的每一端,程序間的傳輸要有兩個標誌:
ip位址和埠號,合稱為套接字位址 socket address
客戶機套接字位址定義了乙個唯一的客戶程序
伺服器套接字位址定義了乙個唯一的伺服器程序
ip+埠號=套接字(socket address)
socket type:根據使用的傳輸層協議
sock_stream:流,tcp套接字,可靠地傳遞、面向連線
sock_dgram:資料報,udp套接字,不可靠地傳遞、無連線
http協議:超文字傳輸協議(處理後的文字叫做超文字,早期稱呼)
html:超文字的標記語言,程式語言
www.w3school.com.cn
並行連線:通過多條tcp連線發起併發的http請求
持久連線:keep-alive,長連線,重用tcp連線,以消除連線和關閉的時延,以事務個數和時間來決定是否關閉連線
管道化連線:通過共享tcp連線發起併發的http請求
復用的連線:交替傳送請求和響應報文(實驗階段)
uri:統一資源標識
url:統一資源定位符
urn:統一資源命名
1、建立連線:接收或拒絕連線請求
2、接收請求:接收客戶端請求報文中對某資源的一次請求的過程
web訪問響應模型(web i/o)
單程序i/o模型:啟動乙個程序處理使用者請求,而且一次只處理乙個,多個請求被序列響應
多程序i/o模型(prefork):並行啟動多個程序,每個程序響應乙個連線請求
復用i/o結構:啟動乙個程序,同時響應n個連線請求
實現方法:多執行緒模型和事件驅動
多執行緒模型:乙個程序生成n個執行緒,每執行緒響應乙個連線請求
事件驅動:乙個程序處理n個請求
復用的多程序i/o模型(worker):啟動m個程序,每個程序響應n個連線請求,同時接收m*n個請求
3、處理請求:伺服器對請求報文進行解析,並獲取請求的資源及請求方法等相 關資訊,根據方法,資源,首部和可選的主體部分對請求進行處理
4、訪問資源: 伺服器獲取請求報文中請求的資源web伺服器,即存放了web資源的伺服器, 負責向請求者提供對方請求的靜態資源,或動態執行後生成的資源
5、構建響應報文:
一旦web伺服器識別除了資源,就執行請求方法中描述的動作,並返回響應報文。響應報文中 包含有響應狀態碼、響應首部,如果生成了響應主體的話,還包括響應主體
1)響應實體:如果事務處理產生了響應主體,就將內容放在響應報文中回送過去。響應報文中通常包括:
描述了響應主體mime型別的content-type首部
描述了響應主體長度的content-length
實際報文的主體內容
2)url重定向:web服務構建的響應並非客戶端請求的資源,而是資源另外乙個訪問路
永久重定向: 響應**:301
臨時重定向: 響應**:302
3)mime型別:web伺服器要負責確定響應主體的mime型別。多種配置伺服器的方法可將mime型別與資源管理起來
魔法分類:apache web伺服器可以掃瞄每個資源的內容,並將其與乙個已知模式表(被稱為魔法檔案)進行匹配,以決定每個檔案的mime型別。這樣做可能比較慢,但很方便,尤其是檔案沒有標準副檔名時
顯式分類:可以對web伺服器進行配置,使其不考慮檔案的副檔名或內容,強制特定檔案或目錄內容擁有某個mime型別
型別協商: 有些web伺服器經過配置,可以以多種文件格式來儲存資源。在這種情況下,可以配置web伺服器,使其可以通過與使用者的協商來決定使用哪種格式(及相關的mime型別)"最好"
6、傳送響應報文:
web伺服器通過連線傳送資料時也會面臨與接收資料一樣的問題。伺服器可能有很多條到各個客戶端的連線,有些是空閒的,有些在向伺服器傳送資料,還有一些在向客戶端回送響應資料。伺服器要記錄連線的狀態,還要特別注意對持久連線的處理。對非持久連線而言,伺服器應該在傳送了整條報文之後,關閉自己這一端的連線。對持久連線來說,連線可能仍保持開啟狀態,在這種情況下,伺服器要正確地計算content-length首部,不然客戶端就無法知道響應什麼時候結束了
7、記錄日誌:
最後,當事務結束時,web伺服器會在日誌檔案中新增乙個條目,來描述已執行的事務
特性高度模組化:核心+模組
dso:動態加/解除安裝
mpm:多路處理模組
mpm工作模式
prefork:多程序i/o模型,每個程序響應乙個請求,預設模型
乙個主程序:生成和**n個子程序,建立套接字,不響應請求
多個子程序:工作work程序,每個子程序處理乙個請求;系統初始時,預先生成多個空閒程序,等待請求,最大不超過1024個
worker:復用的多程序i/o模型,多程序多執行緒,iis使用此模型
乙個主程序:生成m個子程序,每個子程序負責生個n個執行緒,每個執行緒響應
乙個請求,併發響應請求:m*n
event:事件驅動模型(worker模型的變種)
乙個主程序:生成m個子程序,每個程序直接響應n個請求,併發響應請求:m*n,有專門的執行緒來管理這些keep-alive型別的執行緒,當有真實請求時,將請求傳遞給服務執行緒,執行完畢後,又允許釋放。這樣增強了高併發場景下的請求處理能力
cgi:通用閘道器介面
正向**:離客戶端近,有快取功能
反向**:離服務端近,有排程功能
負載均衡
路徑別名
豐富的使用者認證機制
支援第三方模組
httpd配置檔案詳解
centos7更改html目錄必須授權
documentroot "path"
require all granted #授權
serverroot "/etc/httpd" #服務所在目錄,包括配置檔案、模組等
listen 80 #監聽埠
include conf.modules.d/*.conf #允許配置檔案中包含其他配置檔案
user apache #該服務的執行使用者
group apache #該服務的執行組
serveradmin root@localhost #客戶端的錯誤訊息包含該郵箱
allowoverride none #.htaccess檔案無效
require all denied #訪問無條件拒絕
documentroot "/var/www/html" #伺服器預設虛擬主機路徑
allowoverride none #不寫預設為none
require all granted #訪問無條件允許
options indexes followsymlinks #遵循此目錄中的符號鏈結
allowoverride none
require all granted
directoryindex index.html #虛擬主機路徑後不新增檔案時預設訪問該檔案
require all denied
errorlog "logs/error_log" #定義該服務工作目錄下的錯誤日誌路徑和名稱
loglevel warn #調整錯誤日誌記錄中的詳細程度和格式定義
logformat "%h %l %u %t \"%r\" %>s %b \"%i\" \"%i\"" combined
logformat "%h %l %u %t \"%r\" %>s %b" common
logformat "%h %l %u %t \"%r\" %>s %b \"%i\" \"%i\" %i %o" combi
nedio
customlog "logs/access_log" combined #請求記錄日誌
scriptalias /cgi-bin/ "/var/www/cgi-bin/" #別名設定
allowoverride none
options none
require all granted
typesconfig /etc/mime.types
addtype text/html .shtml
addoutputfilter includes .shtml
adddefaultcharset utf-8
mimemagicfile conf/magic
enablesendfile on #使用核心sendfile支援將檔案傳遞給客戶端
includeoptional conf.d/*.conf
Apache伺服器SSL證書安裝https
apache伺服器ssl證書安裝https 2020 2 9 1 如果無 etc httpd ssl 目錄,可通過 命令列建立,再進行第二步。2 如果有 etc httpd ssl 目錄,將已獲取到的1 root bundle.crt證書檔案 2 www.cloud.com.crt證書檔案以及3 w...
訪問Apache伺服器自動跳轉到https協議
apache是世界使用排名第一的web伺服器軟體。它可以執行在幾乎所有廣泛使用的計算機平台上,由於其跨平台和安全性被廣泛使用,是最流行的web伺服器端軟體之一。它快速 可靠並且可通過簡單的api擴充,將perl python等直譯器編譯到伺服器中。類似的還有nginx tomcat等 htacces...
Apache服務(三)Apache服務支援的語言
1.html 預設支援的語言 2.php 1 編輯php的預設測試頁 退出儲存後開啟瀏覽器檢視什麼都檢視不到 2 yum install php y 安裝php軟體 systemctl restart httpd 重啟服務 再次檢視可以檢視到藍色頁面 註冊的介面cgi 普通閘道器介面 網路的語言裝換...