天天看點

httpd簡介

1、port number(iana,網際網路位址授權機構規定)

    tcp:傳輸控制協定,面向連接配接的協定;通信前需要建立虛拟鍊路,結束後拆除鍊路。

    udp:user datagran protocol,無連接配接的協定。

    0-1023:衆所周知,永久的配置設定給固定的應用使用,特權端口(22/ssh,80/http)。

    1024-41951:亦為注冊端口,但要求并不是特别嚴格,配置設定給程式注冊為某應用使用(11211/tcp,3306/tcp)

    41952-65535:用戶端程式随機使用的端口:動态端口,或私有端口;其範圍的定義在檔案中:(/proc/sys/net/ipv4/ip_local_port_range)。

2、socker:ipc的一種實作,允許位于不同主機(甚至同一主機)上不同程序之間進行通信。

   socket api(封裝了核心中的socket通信相關的系統調用)

httpd簡介

    (1)、根據傳輸層協定分類:

        sock_stream:tcp套接字

        sock_dgran:udp套接字

        sock_raw:裸(raw)套接字

    (2)、根據套接字所使用的位址格式,socket domain:

        af_inet:address family,ipv4的位址

        ad_inet6:ipv6的位址

        af_unix:同一主機上不同程序之間通信時使用

    (3)、套接字相關的系統調用:

        socket():建立一個套接字

        bind():綁定

        listen():監聽

        accept():接受請求

        connect():請求連接配接建立

        write():發送

        read():接收

httpd簡介

3、tcp協定的特性

    建立連接配接:三次握手

    将資料打包成段:校驗和(crc-32)

    确認、重傳以及逾時

    排序:邏輯序号

    流量控制:滑動視窗算法

    擁塞控制:慢啟動和擁塞避免算法

4、tcp fsm:tcp finite state machine,有限狀态機

closed、listen、syn_sent、syn_recv、established、fin_wait1、 close_wait、fin_wait2、last_ack

httpd簡介

1、http:hyper text transfer protocal,超文本傳輸協定

    c/s架構:用戶端-伺服器,實作該協定的程式有httpd,nginx,lighttpd......

    工作模式:一次httpd事務:請求<-->響應

      http請求封包:http request

      http響應封包:http response

2、http協定版本

    1)http/0.9:原型版本隻能傳輸文本檔案,僅有get方法傳輸到用戶端

    2)http/1.0:第一個廣發使用的版本,支援mime機制、cache支援、method(請求方法)

      mime:multipurpose internet mail extesion多用途網際網路郵件擴充,支援非文本編碼傳輸後再解碼還原

    3)http/1.1:增強了緩存功能

    4)http/2.0:借鑒spdy對1.0多方面改進,大大提升性能

    spdy是google開發的基于tcp的應用層協定,用以最小化網絡延遲,提升網絡速度,優化使用者的網絡使用體驗。

      spdy對http協定的增強。新協定的功能包括資料流的多路複用、請求優先級以及http報頭壓縮。

3、web資源:web resources 

4、并發通路響應模型(web i/o):

5、一次完整的http請求處理過程

1、httpd:apache純粹的靜态伺服器

    版本:1.3、2.0、2.2、2.4。centos6預設使用2.2;centos7預設使用2.4

    a patchy server(一個充滿更新檔的伺服器)

    asf:apache software foundation(apache軟體基金會)最早的項目,官方站點:httpd.apache.com

2、httpd的特性

    高度子產品化:core + modules

    dso:dynamic shared object

    mpm:multipath processing modules

     profork:多程序模型,每個程序響應一個請求:

     一個主線程:複制生成n個子程序,子程序也稱為工作程序,每個子程序處理一個使用者請求;即便沒有使用者請求,也會預先生成多個空閑程序,随時等待請求到達:最大不會超過1024個。

     worker:事件驅動模型,每個線程響應n個請求;

     一個主程序,生成m個子程序,每個子程序負責生成多個線程,每個線程響應一個請求; 

     m程序,n線程:m * n

     event:事件驅動模型,每個線程響應n個請求;

     一個主程序,生成m個子程序,每個子程序直接響應n個請求    m * n 

3、httpd的功能特性    

4、httpd的請求方法 

5、http協定首部

1)、通用首部

2)、請求首部

3)、實體首部   

4)、響應首部

6、http狀态碼   

繼續閱讀