http協議web服務器

HTTPphp

HTTP:Hyertext Transfer Protocol:超文本傳輸協議(超連接)html

超連接:在文檔中實現跳轉,(基於連接,能在文檔中跳轉)java

Web:
     http/0.9:早期:僅支持純文本(超連接,ASCII,python

     HTML:編寫超文本的語言,超文本標記語言(將分散在多個服務器中的資源整合成爲一個頁面並被瀏覽器使用)。linux


Browser:瀏覽器:客戶端代理(火狐,IE)nginx


URI:統一資源標識符----定義全局範圍內,獨立惟一資源的命名方式web


   統一:路徑格式上的統一chrome

URI的子對象-->URL:統一資源定位符  ----用來描述 在互聯網上的資源的統一表現格式--獲取這個資源的格式和路徑數據庫


protocol://host:port/path/to/fileapache

例如:
http://www.magedu.com/download/linux.tar.gz


web資源(web對象):可讓客戶端進行訪問的文件

http://www.magedu.com/logo.gif

多個資源被整合爲一個html文檔

HTML語言:將分散在多個服務器上的資源整合成一個頁面,而且可以在瀏覽器頁面上進行顯示!


資源獲取的方式:http方法/1.0:PUT(從遠程服務器獲取一個文件到本地),POST(能夠向服務器進行文件的上傳),GET(從遠程服務器獲取文件在頁面上進行顯示),DELETE

http/1.0引進了MIME:多用途互聯網郵件擴展


SMTP:簡單郵件傳輸協議,早期:(傳文本)
  
        MIME:將非文本數據在傳輸前從新編碼爲文本格式,接收方可以用相反的方式將其從新還原爲原來的格式,還可以調用相應的程序來打開此文件
    


協議首部:
p_w_picpath(圖片)/jpeg

瀏覽器有插件能夠解析對應MIME傳來各類格式的數據,(fLush插件)

動態網頁:activeX,在服務器端存儲的文檔非HTML格式,而是編程語言開發的腳本,腳本接受參數(客戶端的地址和瀏覽器類型)以後在服務器上運行,完成以後,會生成HTML文檔,並把這個生成的文檔發給客戶端,


Java,Applet,JRE(環境)

web:index.php

web-->procotol(協議)-->php(運行index.php)-->生成HTML文檔再返回給web服務器-->再返回給客戶端

流程:客戶端進行客戶請求的時候,不是純文本文檔,是index.PHP格式文檔,此時web服務器會調用PHP解釋器來運行index.php格式的文檔,生成HTML格式的文檔再返回給web服務器,再返回給客戶端,再經過客戶端瀏覽器的插件進行解析成該客戶端請求格式的內容!!)


index.html:
         一個網頁 引用N個web對象:URL
 

動態網頁:包含靜態內容和動態內容
  
          動態內容部分才需運行才能返回給客戶端


http--1.0/一、添加了緩存:
          二、引入了長鏈接的機制

IP:首部   source IP     Destination IP   

TCP:首部    source  port   Destination port

HTTP首部    GET 2.html(具體路徑)  
            host:www.magedu.com   


 
HTTP報文:請求報文,響應報文



請求報文語法:
<method-資源獲取方法> <request-URL-請求的資源是什麼> <version資源協議的版本號>
<headers--HTTP協議的首部>

空白行

<entity-body-->報文主體

服務器相應相應報文:


<version--協議><status--狀態碼> <reason-phrase--解釋status的意義>
<headers--相應報文的格式>

<entity-body>

status ----- 狀態代碼:
1xx:純信息
2xx:"成功"類的信息(202)

3xx:重定向類的信息(301--永久重定向,302--臨時重定向,304--沒有發生任何改變)

4xx:客戶端錯誤類的信息(404--客戶端錯誤)

5xx服務器端錯誤的信息  (501,502,503。。。。。。)


請求報文:
GET /HTTP/1.1
host:www.magedu.com
connection: keep-alive


相應報文:
/HTTP/1.1 200 OK
x-Powered-By:php/5.2.17


上面兩個報文的第一行一般稱做報文「起始行(start line)」:後面的標籤格式的內容稱做首部域(header field),每一個首部域都由名稱(name)和值(value)組成,中間用逗號分隔,另外,響應報文一般還有一個稱爲body 的信息主體,即響應給客戶端的內容,


web服務器的主要操做
一、創建鏈接--接受或者拒絕可專斷鏈接請求
二、接受請求--經過網絡讀取HTTP請求報文
三、處理請求--解析請求報文並作出相應的動做
四、訪問資源--訪問請求報文中相關的資源
五、構建相應--使用正確的首部生成HTTP相應報文
六、發送相應--向客戶端發送生成的相應報文
七、記錄日誌--當已經完成的HTTP事務記錄進日誌文件


C/S
     C:Clinet Agentg (browser(瀏覽器),spider(搜索引擎))

     S:Server
 
      Client->request-server-->
  
      標記用戶資源@URL --報文請求格式

      server-response->client
 
      獲取資源的方法   @GET ,HEAD POST PUT ,DELETE,TRACE,OPITIONS, connection.

協議首部   
Name:Value
host:www.magedu.com
connection:keep-alive
 



server 響應模型,
            
           1單進程,單線程
           2單進程,多線程
           3多進程 ,單線程
           4多進程,多線程

httpd:  一、prefork   二、work   三、event

客戶端瀏覽器Client:
      一、IE

      二、Firefox   火狐
  
      三、chrome    谷歌
       
      四、Opera

      五、Safari
服務器端軟件 Server:
 
       一、Apache-->httpd
 
       二、nginx

       三、lighttpd   德國研發的一個開源軟件

       四、thttpd      一個嵌入式的web服務器

應用程序服務器:

        一、IIs ()

        二、tomcat(apache,JSP,open source)

        三、websphere(IBM,JSP,commodity)

        四、weblogic(Oracle,JSP,commodity)

        五、JBOSS(RedHat)從新封裝的一個tomcat


 www.netcraft.com  最近全球互聯網上web服務器各產品的比例。

apache:

軟件基金會:
FSF:GUN,GPL

ASF:apache software  Fundation 

          web:httpd

  一、Hadoop提供並行處理環境,提供高性能框架
  二、tomcat:做爲JSP實現規範和參照的應用程序

apahce基金會的主要項目訪問路徑       web:http://httpd.apache.org

httpd服務器軟件:
     web server,open Source
   各類版本:2.2   2.4     2.0   1.3

httpd具備的特性:
        一、事先建立進程----web相應用戶請求的時候,已經啓動進程,空閒狀態,若有請求,即刻可有用
        二、按需維持適當的進程----若有很大的訪問請求,如完成請求,會適當關閉一些空閒的進程
        三、模塊設計,核心比較小,各類功能都模塊添加(包括php)
                                  ------支持運行時配置,支持單獨編譯模塊
        四、支持多種方式的虛擬主機配置--- 
                      虛擬主機:   物理服務器只有一個,web程序也只有一個,根據用戶不一樣的請求,可是能夠有多個不一樣的站點(scoret:IP.port)
                               虛擬主機的類型: 1.基於IP的虛擬主機
                                                2.基於端口的虛擬主機
                                                3.基於域名的虛擬主機------
                                
                            
                        
 支持https協議 -----經過一個模塊方式mod_ssl
 支持用戶認證---
 支持基於IP或主機名的ACL(訪問控制)
 支持每目錄的訪問控制(訪問特殊目錄的時候須要帳號和密碼)
 支持URL重寫,/p_w_picpath/a.jpeg/bbs/p_w_picpaths/abc.jpeg


dhcp的安裝-----3
      
rpm包的安裝:

源碼編譯安裝

httpd:
      /usr/sbin/httpd(多道處理模塊--MPM:prefork)

          httpd:root,root(master process--主導進程)

          httpd:apache,apache(worker process--工做進程)
          服務腳本---/etc/rc.d/init.d/httpd
       
          port:(80/tcp),(ssl:443/tcp)

          etc/httpd:工做根目錄,至關於程序安裝目錄

          /etc/httpd/conf:配置文件目錄
           
                 主配置文件:httpd.conf

                    /etc/httpd/conf.d/*.conf   也是配置文件目錄

                /etc/httpd/modules:模塊目錄

                /etc/httpd/log-->/var/log/httpd:日誌目錄

                     日誌文件有兩類:訪問日誌access_log,錯誤日誌:err_log

                客戶端請求服務器的頁面目錄: /var/www/
                     
                           ---html
                           ---cgi-bin   動態頁面所提供的路徑

                cgi:common gateway Interface---通用網管接口--就是web服務器與應用程序交流的一種協議
                      ----其實就是跟web服務器可以讓額外的應用程序通訊的一種機制,可以讓web啓動程序來處理動態內容。

                      Client  -->httpd(index.cgi-動態內容)-->spawn Process(發起這個程序進程)(index.cgi)-->httpd-->client

                  cgi: perl,python,java,(servlet,jsp),php

                  web靜態服務器與動態程序服務器通訊稱爲:fastcgi

    -----當用戶發送請求當中,有靜態和動態請求,靜態請求,web服務器能夠單獨處理相應給用戶,動態內容能夠經過網絡
         發給動態程序服務器進行處理,從而能夠把靜態和動態分離處理再返回給客戶,這就是靜態和動態分層次處理,

程序:有指令和數據組成

專業管理數據服務的服務器是數據庫服務器!


httpd:
     指令  參數        directive  value
 
    指令不區分大小寫,value則根據須要區分大小寫!


MPM:Multi Path  Modules   多道處理模塊

   一、mpm_winnet   win上專用的線程處理機制  
   二、prefork      在Linux上預先生成進程  -----------一個請求用一個進程相應
   三、worker      基於線程工做,一個進程相應多個用戶請求,可是是多個線程來處理請求------一個請求用一個線程相應
   四、event       基於事件的請求,一個進程處理多個用戶請求-----一個進程處理多個請求



虛擬主機:


apache服務:
     中心主機:
 
     虛擬主機:
                  一、IP虛擬
  
                  二、端口虛擬

                  三、域名虛擬

一個站點須要哪些東西(獨立的資源):
                          一、不一樣的目錄--Documentroot
                          二、servername 主機名
         

  虛擬主機與中心主機不能同時使用,得先取消中心主機,註釋中心主機的DocumentRoot便可。

虛擬主機的定義:             

< virtuahost host>

</virtuahost>

相關文章
相關標籤/搜索