HTTP Apache詳解


概念知識:

通過http服務通訊的過程:

 

 

此過程在TCP/IP四層網絡模型如下進行:

HTTP相關術語
http: Hyper Text Transfer Protocol, 80/tcp
html: Hyper Text Markup Language 超文本標記語言,編程語言

工作機制:
http請求:http request
http響應:http response
一次http事務:請求<-->響應
Web資源:web resource
一個網頁由多個資源構成,打開一個頁面,會有多個資源展示出來,但是每個資 源都要單獨請求。
因此,一個“Web 頁面”通常並不是單個資源,而是一組資源的集合。
靜態文件:無需服務端做出額外處理 文件后綴:.jpg, .html, .txt, .js, .css, .mp3, .avi
動態文件:服務端執行程序,返回執行的結果 文件后綴:.asp, .php, .jsp
提高HTTP連接性能
並行連接:通過多條TCP連接發起並發的HTTP請求
持久連接:keep-alive,長連接,重用TCP連接,以消除連接和關閉的時延,以事 務個數和時間來決定是否關閉連接
管道化連接:通過共享TCP連接發起並發的HTTP請求
復用的連接:交替傳送請求和響應報文(實驗階段)

一次完整的http請求處理過程如下,

HTTP服務安裝

這里只做源碼編譯安裝,通過yum源安裝就不做詳細講解了。
在安裝前有一個概念需要了解,早期的Apache版本中,應用程序本身必須能夠處理各種具體操作系統平台的細節, 並針對不同的平台調用不同的處理函數。
后期為方便維護開發了APR(Apache portable Run-time libraries,Apache可移植運行庫) 主要為上 層的應用程序提供一個可以跨越多操作系統平台使用的底層支持接口庫。
因此我們需要准備以下源碼包(這是截至2018/6/21相對比較新的包):
httpd-2.4.33.tar.bz2
apr-1.6.3.tar.bz2
apr-util-1.6.1.tar.bz2
通過yum安裝開發環境包組(編譯工具):
Development Tools,Server
相關包:pcre-devel,openssl-devel expat-devel

  • 准備相關軟件包及環境

  • 解壓縮

  • 編譯過程
    編譯過程剛開始接觸的話很麻煩,因為可能會遇到各種各樣的報錯
    建議根據編譯報錯信息到網上查詢,一般都是缺少依賴包造成的


    預編譯過程中很可能會遇到缺依賴包的情況,例如以下我遇到的情況:

    從表面上看這里提示openssl 版本位達到要求版本,並且缺少mod_ssl
    先不要急着安裝openssl或者mod_ssl,因為yum install mod_ssl會直接連帶httpd一起安裝上,
    那就成了yum安裝httpd了
    這里建議先在網上搜搜資料,因為除非你將編譯安裝玩了成百上千遍,已經知道了各種編譯報錯。
    我這里的報錯是缺少openssl-devel包,使用yum install openssl-devel即可
    然后再次預編譯通過

    進行make編譯並安裝,這里使用-j 2表示並行數,根據自己的CPU核數設定,也可以不用-j

    但是即使configure階段沒有問題了,也不代表make能成功,我這里遇到以下情況

    這還是因為缺少依賴包expat-devel,
    執行yum install expat-devel
    之后還有其它錯誤,都是通過在網上搜索報錯信息解決
    這里我還執行了yum install libxml2-devel
    然后重新make && make install,以下是最后完成截圖:

  • 配置環境變量

未完待續....

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM