web服務_apache基礎

 

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

              /etc/httpd/conf.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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章