http:
http協議: http/0.9:原型版本; http/1.0:cache, MIME(multipupose internet Mail Extensions) method:GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS、... http/1.1:緩存功能大大增強 speedy:spdy http/2.0
80/tcp
https協議: 443/tcp
IANA: 0-1023:衆所周知的,永久地分配給固定的應用使用;特權端口(僅root可用); 1024-41951:註冊端口,但要求不是特別嚴格,分配給程序註冊爲某應用使用; 41952+:客戶端程序使用的隨機端口,動態端口,或稱爲私有端口;/proc/sys/net/ipv4/ip_local_port_range;
BSD Socket:IPC一種實現,允許位於不同主機之上的進程之間互相通信的解決方案之一; Socket API: SOCK_STREAM:tcp套接字; SOCK_DGRAM:udp套接字; SOCK_RAW:裸套接字;
根據套按使用的地址格式: AF_INET:ipv4地址家族; AF_INET6:ipv6 AF_UNIX:Unix_sock;
TCP Finite State Machine: TCP協議的特性: 建立連接:三次握手; 將數據打包成段:校驗和(CRC32) 確認、重傳及超時; 排序:邏輯序號; 流量控制:滑動窗口; 擁塞控制:慢啓動及擁塞避免算法; http:hyper text tranfer protocol, 超文本傳輸協議; Html: hyper text mark language,超文本標記語言; 工作模式:request/response 一次完整的http事務:請求<-->響應;
web資源: 一個html文檔; 一個圖片; 一個mp3文件片斷; ...
URL:資源標識,用於描述服務器上某特定資源的位置; Uniform Resource Locator scheme://Server[:port]/PATH/TO/SOME_RESOURCE
資源的種類: 靜態資源:.jpg, .gif, .png, .html, .txt, 直接請求相應 不需要運算 動態資源:需要在服務器或客戶端運行後返回結果 服務器端技術:.php, .jsp, ... 客戶端技術:.js
一次完整的http請求的處理過程: (1) 建立或處理連接:接收請求或拒絕請求; (2) 接收請求:接收客戶端發來的具體請求報文; (3) 處理請求:對請求報文進行解析; (4) 訪問資源:通過存儲IO獲取用戶請求的資源; (5) 構建響應報文: (6) 發送響應報文 : (7) 記錄於日誌中:
併發響應模型: 單進程I/O模型:串行響應; 多進程I/O模型:同時啓動多個進程,每個進程響應一個請求; 複用的I/O模型:一個進程響應多個請求; 多線程模型:一個進程生成多個線程,每個線程響應一個請求; 事件驅動:一個進程直接響應多個請求; 複用的多進程I/O結構:啓動m個進程,每個進程生成n個線程,每個線程響應一個請求; 資源映射: chroot: /var/test/a/b/index.html
chroot /var/test, /a/b/index.html
例如:/var/www/html/ images/logo.jpg http://www.magedu.com:80/images/log.jpg
DocumentRoot 頁面資源存放的路徑
web服務器的資源映射機制: (a) DocumentRoot (b) alias (c) 虛擬主機的docroot (d) 用戶的docroot ... http請求處理中的連接方式: 保持連接:長連接,keepalive 當客戶端請求每一個資源時都會建立一次tcp鏈接 每次一鏈接請求一個資源,大量資源都用在握手上,效率低下,保持鏈接則可以基於一次握手傳送多個資源 非保持連接:短連接, 不保持鏈接 每一個資源單獨握手 折中思路:防止長連接佔用而不請求資源 時間:時間限制 數量:數量限制
http協議的實現: 簡單的基本http協議服務器: httpd (apache) nginx lighttpd
application server:動態服務器技術; iis, tomcat, jetty, resin, ... weblogic, websphere, jboss, glassfish, ...
httpd: www.netcraft.com 數據挖掘網站 ASF:apache software foundation apache,a patchy server, httpd
httpd的特性: 高度模塊化:core + modules DSO: Dynamic shared objects 支持動態裝載和卸載; MPM:multipath processing modules 多路處理模塊 (httpd 2.2以前的版本不支持DSO機制) prefork:一個主進程,多個子進程;一個進程響應一個請求; 主進程:管理子進程;創建套接字;接收用戶請求,並派發給某子進程處理;... 子進程:處理請求、響應請求; worker:多進程多線程模型;一個線程響應一個請求; 主進程:管理子進程;創建套接字;接收用戶請求,並派發給某子進程處理;... 子進程:負責管理線程; 線程:處理並響應請求; event:事件驅動模型,多進程模型,每個進程響應多個請求; 主進程:管理子進程;創建套接字;接收用戶請求,並派發給某子進程處理;... 子進程:處理並響應請求;
httpd-2.2:event爲測試模型; CentOS 6:MPM不支持DSO機制; httpd-2.4:production ready;支持DSO機制; CentOS 7: *************************************** httpd的功能特性: CGI:common gateway interface; 虛擬主機:IP, PORT, HOSTNAME 反向代理 負載均衡:bytraffic, bybusiness, byrequest 路徑別名 豐富的用戶認證機制 basic: digest: 支持第三方模塊 ... ******************************************* CentOS 6:httpd-2.2 sysinit腳本:/etc/rc.d/init.d/httpd 程序環境: 配置文件: /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf 程序文件: /usr/sbin/httpd /usr/sbin/httpd.event /usr/sbin/httpd.worker
腳本配置文件:/etc/sysconfig/httpd 日誌文件: /var/log/httpd access_log:訪問日誌 error_log:錯誤日誌 站點文檔根目錄: /var/www/html 模塊文件路徑: /usr/lib64/httpd/modules chkconfig httpd on|off
CentOS 7:httpd-2.4 Systemd Unit File:/usr/lib/systemd/system/httpd.service
程序環境: 配置文件: /etc/httpd/conf/httpd.conf /etc/httpd/conf.modules.d/*.conf 程序文件: /usr/sbin/httpd
MPM支持DSO機制,所以各爲一個獨立的模塊;
日誌文件: /var/log/httpd access_log:訪問日誌 error_log:錯誤日誌 站點文檔根目錄: /var/www/html 模塊文件路徑: /usr/lib64/httpd/modules
systemctl enable httpd.service |
web服務_apache基礎
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.