linux之httpd服務centos6 配置 html網頁


httpd服務centos6 配置  html網頁

1.centos6掛載兩個光盤  配置yum 復制到cdiso1 安裝httpd服務 網頁測試

兩個鏡像 第一個

mount /dev/sr0 /mnt/        ---先掛載鏡像光盤1 到mnt下

cd /media/cdiso/

mkdir cdiso1                 --創建cdiso1的目錄

cp -rf /mnt/* /media/cdiso1  ---把 mnt掛載的鏡像1內容復制到cdiso1中

du -sh /media/cdiso1        ---查看目錄文件大小

 

 

 

 

第二個

去虛擬機中設置第二個鏡像光盤

cd /media/

mkdir cdiso2                                 ---創建掛載點

mount /dev/sr0 /media/cdiso2                ---掛載

 

 

 

 

 

掛載兩個光盤鏡像的yum源

cd /etc/yum.repos.d/             

cp CentOS-Base.repo  CentOS-Base.repo.bak

vim CentOS-Base.repo

baseurl=file:///media/cdiso1

        file:///media/cdiso2

 

 

 

 

 

安裝軟件   httpd

yum clean all         --清空緩存

yum -y install httpd   --安裝httpd軟件

yum list  --查看yum列表

yum  -y  remove  httpd   --卸載httpd

 

 

1.相關配置文件路徑  啟停腳本  日志存放路徑

/etc/httpd/conf/httpd.conf  主配置文件

/etc/httpd/conf.d/*.conf    輔助配置文件

 

服務啟停腳本:

/etc/rc.d/init.d/httpd start  或者 service  httpd start

 

httpd啟動選項文件/etc/sysconfig/httpd      ----選擇工作模式

程序的主程序指令文件 /usr/sbin/httpd

                      ② /usr/sbin/httpd.event

                      ③ /usr/sbin/httpd.worker

 

日志文件路徑:

/var/log/httpd  --->符號連接文件/etc/httpd/logs

訪問日志:access_log   --查看誰訪問

錯誤日志:error_log

網頁根路徑/var/www/html        

2.)Centos6httpd程序 配置文件組成  解讀配置文件

配置文件可以實現配置Httpd的基本功能,

有三部分組成:

Global Environment 全局特性配置

Main server configuration 主服務器配置  即網站配置

Virtual Hosts虛擬主機配置(不要同第二種同時使用)

 

 

33 ### Section 1: Global Environment     --全局配置

44 ServerTokens OS                      --服務器標簽

57 ServerRoot "/etc/httpd"               --根目錄(即為默認路徑可指定)

后面如果說有一個配置目錄  沒有指定  那么這就是默認路徑

65 PidFile run/httpd.pid                  ---阿帕奇運行會有一個pid進程

寫在  run/httpd.pid  這個文件下 ,沒有指絕對路徑就會在 第57 ServerRoot "/etc/httpd"   這個目錄下面

 

 

 

 

root      27254  0.0  0.4 139140  4792 pts/2    S+   20:21   0:00 vim httpd.conf

存放的是父進程的Pid號,下面都是子進程  不記錄pid號

Httpd  是root運行的所以為父進程  ,下面是由父進程產生的

1.端口配置Listen(是否增加或更改監聽端口)

格式:Listen [IP:] PORT    IP省略代表監聽所有IP地址。PORT端口

135 #Listen 12.34.56.78:80          ---也可以加上ip地址:80(可不寫80)

136 Listen 80                   ---偵聽的是80端口(默認)

 

   ---也可增加8080 指定端口

2持久連接設置(是否開啟,最大連接數,超時時間)

連接網頁: 一次連接實現傳輸多次請求  (請求網頁資源)

連接建立,每個資源獲取完成后不會斷開連接  而是繼續等待其他的請求完成。

76 KeepAlive Off                  --是否開啟持久連接以及設置連接超時

83 MaxKeepAliveRequests 100        --一次連接可完成100次的連接  最大連接數

89 KeepAliveTimeout 15            --兩次時間請求間隔超時  15s則斷開

#超時時間為15s,單位默認為s

Httpd-2.4支持毫秒級持久連接。    

格式KeepAlive On|Off    打開瀏覽器,F12打開調試,F5刷新

請求連接的數量和時間限制可自行配置(根據實際生產環境來定義,推薦較短持久連接時間)

3.MPM(多路並發模型響應)運行模式更改  

centos6 rpm包為2.2版本,自帶模塊prefork  worker  event

查看當前使用的MPM模塊ps aux | grep httpd     默認是prefork

 

 

 

 

查看當前編譯入httpd核心的MPM模塊

命令格式:   http[.MPM] -l     http .worker -l     http .event -l  

 

 

 

 

 

運行模式更改   更換httpd程序,MPM模塊

vim  /etc/sysconfig/httpd   --- httpd的腳本配置文件 解開httpd那個即可

/etc/sysconfig/httpd   restart重啟服務

 ps aux | grep httpd   查看當前使用的MPM模塊  

 

 

 

 

可看到 /usr/sbin/httpd.worker  已更改

 

 

 

 

4.DSO動態加載模塊配置

主配置文件中的LoadModule選項,進行啟用或卸載已裝載的模塊。

動態裝卸載模塊的系統存放路徑/etc/httpd/modules/  (鏈接路徑--->/usr/lib64/httpd/modules)

 

 httpd -M 查看其他編譯裝載的模塊

 vim /etc/httpd/conf/httpd.conf配置文件路徑 :

/usr/lib64/httpd/modules/模塊文件位置

 

#LoadModule foo_module modules/mod_foo.so后面模塊就會加載起來

 

 

 

 

這是阿帕奇現在加載的模塊  但這個/etc/httpd/modules   --是軟連接  

連接到  實際模塊文件位置:/usr/lib64/httpd/modules/   --實際路徑(可用)

 

 

 

 

 

 

 

5.網頁根路徑配置和ServerName

vim /etc/httpd/conf/httpd.conf主配置文件    

httpd主配置文件中的DocumentRoot  來定義

網頁的根路徑,默認在/var/www/html  也是在訪問URL地址的起始根路徑 /。

                  /  代表網頁根路徑

 

 

 

 

292 DocumentRoot "/var/www/html"      --指定網頁根路徑(可修改)

276 ServerName www.example.com:80  --設定網站的名稱 80端口可不加

 

 

 

 

6.編寫測試網站

vim /etc/httpd/conf/httpd.conf主配置文件

404 DirectoryIndex index.html index.html.var   因為這里指定了名稱首頁

所以就建立這個測試網站首頁文件

 

 

 

 

<body>

        <h1>test</h1>

        <p>web test</p>

        </br>

        <img src="welcome.jpg"></br>

        <a href="http://www.baidu.com">www.baidu.com.com</a>

</body>

 

7.指定首頁  更改默認主頁面  啟動服務

vim /etc/httpd/conf/httpd.conf主配置文件      

DirecotryIndex  index.html index.html.var   (html    htm   xhtml  index.html.var)  ----指定首頁.php  .jsp   .py  .cgi   .perl)

 

8.網頁訪問 啟動服務  安裝網頁訪問軟件 Linux內對WEB站點資源訪問的相關命令方式

curl查看源碼      elinks           lynx 訪問網站

 

yum -y install lynx    安裝訪問網站的軟件               

curl 請求資源的操作方法

curl [option] xxx.xxx.xxx.xxx[:80]      

例如: curl 192.168.10.20     

elinks 請求資源操作方法

elinks  xxx.xxx.xxx.xxx [:80]

lynx  xxx.xxx.xxx.xxx[:80]

lynx 192.168.10.20     --訪問網站

 

 

 

 

curl 192.168.10.20 查看源碼

 

 

 

 

 

在真機中訪問   

 

 

 

 

 

 

9.設定默認的字符集

vim /etc/httpd/conf/httpd.conf  在主配置文件中     

761 AddDefaultCharset UTF-8

設定默認字符集為支持中文編碼

10.目錄 路徑別名(請求的資源會自動進入服務器另外的網頁路徑)

vim /etc/httpd/conf/httpd.conf  httpd 主配置文件中     

給目錄起別名格式:

Alias /URL/ “/XXX/XXX/dir/”    

Alias 給他起別名   /URL/ 根目錄下的URL  是 /XXX/XXX/dir/目錄

網站服務器真實存在的目錄   

注意:最后面的路徑提示符要統一,要么都有,要么都沒有。

示例一:

Alias /bbs "/forum/htdocs"

<Directory "/forum/htdocs">

    Options Indexes FollowSymLinks MultiViews

    AllowOverride all

    Require all granted

</Directory>

1.去修改配置文件增加別名

vim /etc/httpd/conf/httpd.conf  

 

Alias /bbs "/var/www/html/bbs"     bbs不存在但是指向后面的連接

<Directory "/var/www/html/bbs">    對這個bbs目錄進行控管

    Options Indexes FollowSymLinks MultiViews    顯示的選項

    AllowOverride None     --不進行權限的復寫

    order allow,deny        

        allow from all       --訪問的控制 allow all允許所有

</Directory>

 

 

 

 

上述別名的配置,就是說當你基於你的站點訪問http://ip/bbs目錄下的文件時,會直接從服務器/forum/htdocs目錄下訪問對應的文件。

 

cd /var/www/html/     mkdir bbs新建目錄  

echo "bbs text" > index.html

 

 

 

 

 

重啟服務測試

 /etc/init.d/httpd restart

 

2.真實機訪問  

http://192.168.10.20/bbs

 

 

 

 

 

11.httpd的日志設定解讀(很重要)

1.)訪問日志(CustomLog)

主配置文件默認定義    cd /var/log/httpd/logs/access.log  

有不同的定義格式,有combined(組合格式)  common  agent

訪問日志分析%h--->請求資源客戶端的IP地址

              %l---->遠程登陸的用戶名(大多數都是空,以-表示)

              %u--->被認證登陸的用戶名

              %t---->服務器收到請求的時間

              %r---->請求報文的首行信息method  URL   version)

              %s---->響應請求的狀態碼

              %b:響應報文的大小,不包括首部,以字節為單位

              %{Referer}:請求報文當中的”referer”首部的值(首部字段Referer會告知服務器請求的原始資源的URI)

              %{User-Agent}:請求報文中”User-Agent”首部的值,即發出請求用到的應用程序。瀏覽器

 

cd /var/log/httpd/logs/access.log  

tail -f /var/log/httpd/logs/access.log  

 

 

 

 

192.168.10.20 - - [28/Oct/2019:22:37:54 +0800] "GET / HTTP/1.1" 200 173 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"

日志解讀   access.log

192.168.10.20   --客戶IP地址

[28/Oct/2019:22:37:54 +0800]   --時間

GET   --獲取的方法

 /    --獲取的內容   首頁

HTTP/1.1   --協議和版本

200     --狀態碼

curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"    --使用的瀏覽器 使用的客戶端程序

 

②錯誤日志(errorLog)

主配置文件中定義了其日志位置,   cd /var/log/httpd/logs/error_log

錯誤日志規定了級別LogLevel warn) 分別為dubug  info  notice  warn   error   crit   alert   emerg

 

 

 

 

 

 

錯誤日志    errorLog

 

 

 

 

7debug      用來debug (除錯) 時產生的訊息數據;

6 info        僅是一些基本的訊息說明而已;

5. notice      雖然是正常信息,但比info還需要被注意到的一些信息內容;

4 warning (warn )   警示的訊息,可能有問題,但是還不至於影響到某個daemon運行的信息;基本上,info, notice, warn這三個訊息都是在告知一些基本信息而已,應該還不至於造成一些系統運行困擾;

3err (error)     一些重大的錯誤訊息,例如配置文件的某些設置值造成該服務

服法啟動的信息說明,通常借由err的錯誤告知,應該可以了解到該服務無法啟動的問題呢!

2.crit         error還要嚴重的錯誤信息,這個crit是臨界點( critical)

的縮寫,這個錯誤已經很嚴重了喔!

1. alert           警告警告,已經很有問題的等級,比crit還要嚴重!

0 emerg ( panic)  疼痛等級,意指系統已經幾乎要死機的狀態!很嚴重的錯誤信息了。通常大概只有硬件出問題,導致整個核心無法順利運行,就會出現這樣的等級的訊息吧!

 

 

 

2.httpd 案例 網頁查看圖片 設置持久連接數等

1.)yum  安裝 httpd服務

yum -y install httpd

2.)編寫網頁,訪問自己的IP地址,顯示自己編輯的HTML的內容   

編寫網頁,要求直接訪問自己的IP地址,即可出現自己編寫的Html頁面index.html:

vim /var/www/html/index.html

 

<body>

        <h1>test</h1>

        <p>web test</p>

        </br>

        <img src="welcome.jpg"></br>

        <a href="http://www.baidu.com">www.baidu.com.com</a>

</body>

 

 

 

 

啟動服務

service  httpd  restart

3.)在真機中訪問,

http://192.168.10.20          可以點擊下面的百度網站

 

 

 

 

4.)更改域名,增加監聽端口

httpd服務器的域名設置為www.ujiuye.com,

並使其除了監聽自己默認的80端口外,還額外監聽在8080端口上。

ServerName www.ujiuye.com:80

 

 

 

 

137 Listen 192.168.10.20:80    監聽的端口

138 Listen 80

139 Listen 8080

 

 

 

 

重啟

/etc/init.d/httpd  restart

service httpd restart

 

 

 

 

 

然后作本機的測試

因為沒有DNS   所以使用本機指定解析

 

vim /etc/hosts           這樣就解析出ujiuye是10.20

 

 

 

 

 

本機linux測試

lynx www.ujiuye.com

 

 

 

 

 

5更改進程運行模式為MPM模式,查看httpd驗證

httpd程序運行模式改為MPM模式,並查看httpd進程進行驗證。

 

vim /etc/sysconfig/httpd

HTTPD=/usr/sbin/httpd.worker解開或者寫入       

 

 

 

 

注意:yum -y install php-zts-5.3.3-47.el6.x86_64

 

然后重啟   查看進程

/etc/init.d/httpd  restart

service httpd restart

ps -aux | grep http

 

 

 

 

 

6.)更改網頁路徑.

vim /etc/httpd/conf/httpd.conf主配置文件    

 

更改網頁根路徑為/doc/www/html/下,並進行訪問。

DocumentRoot "/doc/www/html"       ---指定根目錄,沒有要新建

DocumentRoot    --指定網站根目錄   注意寫的時候的標簽對

 

加入內容

<Directory "/doc/www/html">     

Options Indexes FollowSymLinks   

    Order allow,deny

    Allow from all

</Directory>        

 

解讀文件

Options   ---目錄顯示屬性的設置

Indexes   ---如果這個目錄下沒有找到doc/www/html這個網站的話,就把這個目錄的內容列表一下

FollowSymLinks  ---這個目錄里的軟連接是可以失效的

Allow from all    ---所有人都可以訪問

<Directory "/doc/www/html"> 

</Directory>    -標簽對--通過標簽對來進行訪問控制

 

配置好后  重啟服務

service httpd restart

客戶端登錄查看

 

 

 

 

7.)設置持久連接和最大連接數,超時時間

打開持久連接,設置最大連接數為50,超時時間為2s

76 KeepAlive On                  --是否開啟持久連接以及設置連接超時

83 MaxKeepAliveRequests 100        --一次連接可完成100次的連接    最大連接數

89 KeepAliveTimeout 15            --兩次時間請求間隔超時  15s則斷開

#超時時間為15s,單位默認為s

 

 

 

 

 

8.目錄別名   網頁制作小技巧

vim /etc/httpd/conf/httpd.conf修改主配置文件

    

Alias /jxj "/doc/www/html/bbs"

<Directory "/doc/www/html/bbs">

    Options Indexes FollowSymLinks MultiViews

    AllowOverride None

    order allow,deny

    allow from all

</Directory>

解讀

Alias   /jxj   網站后面加別名  實際位置是 /doc/www/html/bbs

 

創建別名網站這個文件

cd   /doc/www/html/jxj

vim index.html

寫入  I love you jing

 

 

 

 

 

網頁制作小技巧

標題標簽:<h1>---<h6>  h1字號最大,h6字號最小。

段落標簽:<p></p>   換行標簽:</br>        范圍標簽<span></span>

圖像標簽<img>    超鏈接標簽<a href=”http://xxx/xxx/xxx”> HIT</a>

特殊符號: (空格符號) "(引號”) ©(公司符號)

 

使其顯示圖片和文字

/doc/www/html/bbs    新建測試網站:index.html

在其中寫入圖片的名稱(圖片也在bbs目錄下)

 

 

 

 

 

 

 

Jxj相當於軟連接   指向的是/doc/www/html/bbs 文件目錄里的initial.html

 

3.理論:

1.)HTTP(超文本傳輸協議)基礎:

屬於應用層協議目前主要實現網頁共享和通信。

網頁:純文本文件,編寫的基本語言為html客戶端瀏覽器翻譯網頁形式顯示出來。

http:hyper text transfer protocol

html:超文本標記語言,屬於一種標記語言(網頁源碼)。

CSS:Cascading Style Sheet(層級樣式表,定義頁面格式)

js:腳本編程語言,工作在客戶端。

 

2.)HTML文檔結構:

頭部部分

標題部分

主體部分

網頁內容:文本、圖像

 

3.)網頁基本標簽

頭部部分:網頁摘要信息,便於瀏覽器解析和搜索引擎搜索。

<title>標簽   針對搜索引擎的搜索或更新頻度的關鍵詞。

 

例如:

<head>

    <title> 我的測試網頁 </title>

</head>

②主體部分

標題標簽:<h1>---<h6>  h1字號最大,h6字號最小。

段落標簽:<p></p>   換行標簽:</br>        范圍標簽<span></span>

圖像標簽<img>    超鏈接標簽<a href=”http://xxx/xxx/xxx”> HIT</a>

特殊符號: (空格符號) "(引號”) ©(公司符號)

例如

<body>

<h1>這是一級標簽</h1>

<h2>這是二級標簽</h2>

<p>這是一個段落</p>

測試換行</br>

<span>范圍測試

范圍測試</span>

<img src=”/xxx/xxx/xxx.jpg”/>

<a href=”http://www.ujiuye.com”> 優就業IT教育</a>

"aaa" bbb<br />Ujiuye.Inc

</body>

 

4.)http的工作原理

   http請求流程:主要實現跨主機發送文檔,客戶端基於瀏覽器向服務端獲取文檔,文檔在服務器的某個路徑之中,

服務端此時監聽在套接字上,服務器接受請求,分析文檔是否存在,如果存在,從磁盤取到資源取到進程(網站服務程序進程)之中,封裝成HTML的響應報返回給客戶端並在瀏覽器上顯示。

5.)WEB資源:

WEB內容的重要組成部分,是客戶端基於HTTP協議可以調用的服務器的相關資源WEB資源分為靜態資源(文件)和動態資源(文件)

   WEB靜態資源:服務器端的WEB資源,不會發生變化,不需要在服務器上進行執行的資源,原路返回發還給客戶端

例如.html   .jpg   .gif   .txt   .js   .css   .mp4   .avi  。。。

   WEB動態資源:服務端的web動態資源,瀏覽器無法直接解析,需要在服務端進行執行一次,才發還給客戶端的資源。

例如:.php  .jsp   .cgi  ......

 

6.)MIME

Multipurpose Internet Mali Extension,多用途英特網郵件擴藏)媒體類型:(使用不同的編碼方式進行編碼)

格式   major/minor,大類/子類

text/html               ---文本/標簽

text/Plain               ---文本/普通文本

image/jpg             

image/gif  ......           

因特網上有數千種不同類型的數據,HTTP仔細地給每種要通過web傳輸的對象都打上了名為MIME類型(MIME type)的數據格式標簽,Web 服務器會為所有 HTTP 對象數據附加一個 MIME 類型。 Web 瀏覽器從服務器中取回一個對象時,會去查看相關的 MIME 類型,看看它是否知道應該如何處理這個對象。大多數瀏覽器都可以處理數百種常見的對象類型:顯示圖 片文件、解析並格式化 HTML 文件、通過計算機聲卡播放音頻文件,或者運行外部插件軟件來處理特殊格式的數據。

 

MIME 類型是一種文本標記,表示一種主要的對象類型和一個特定的子類型,中間由一條斜杠來分隔。

1.HTML 格式的文本文檔由 text/html 類型來標記

2.普通的 ASCII 文本文檔由 text/plain 類型來標記

3.JPEG 版本的圖片為 image/jpeg 類型

4.GIF 格式的圖片為 image/gif 類型

5.Apple 的 QuickTime 電影為 video/quicktime 類型

6.微軟的 PowerPoint 演示文件為 application/vnd.ms-powerpoint 類型

7.)資源標識定位符

資源標識--->URI,統一資源標識符用於標示一個抽象或者物理資源,相當於名稱,由三部分組成:訪問資源的命名機制,存放資源的主機名,資源自身的名稱由路徑表示

資源定位--->URL (服務器地址ip:port)統一資源定位符用於標示網絡資源的位置,由三部分組成:第一部分是協議(或稱為服務方式);第二部分是存有該資源的主機IP地址(有時也包括端口號);第三部分是主機資源的具體路徑。

每個URL都必須從以下命名機制開始:ftp、http、https、gopher、mailto、news、nntp、telnet、wais、file或prospero。如果不是以此開頭,則不是URL。

 

 

8.)PV .UV,AC.IV概念

PVpage view(一次頁面的訪問)  即頁面訪問量,每打開一次頁面PV計數+1,刷新頁面也是。包括全站PV,首站PV

UVuser view (多少用戶訪問過,跟頁面數量多無關,表現為用戶活躍度一台電腦終端為一個訪客

ACActive connection  活動連接數,當前在使用的活動的連接數

IV:是IP訪問數指獨立IP訪問數,一個獨立的IP在一個計算時段內訪問網站計算為1次IP訪問數。在同一個計算時段內不管這個IP訪問多少次均計算為1次。計算時段有以1天為一個計算時段,也有以1個小時為一個計算時段。

qps:每秒查詢數    並發/響應

 

9.)WEB服務並發響應模型(web的I/O模型)

並發的概念:多個客戶端時請求服務器的資源,服務端進行資源I/O響應。

①:單進程I/O結構,一個進程處理一次請求,多個請求需串行響應。(排隊)

②:多進程I/O結構--->啟動多個進程,一個進程處理一個請求,多個進程同時進行處理請求。

注意:多進程I/O結構缺點:進程啟動太多,會造成大量進程間切換,消耗大量的內存資源。

      多進程I/O結構優點:進程之間互相不影響。

③:復用I/O結構:多路I/O處理器完成I/O復用,實現一個進程響應多個用戶請求。

單個進程響應多個請求的實現方式:

1.) 多線程方式   一個進程生成多個線程,一個線程響應一個請求。

       2.) 事件驅動方式,當web server接收到請求,就把他扔到一個隊列中然后在繼續響應請求。在隊列中准備就緒后,服務器在把結果發送給客戶端。

④:復用多進程I/O結構:啟動多個進程每個進程響應多個請求

 

10.)HTTP協議版本:

HTTP 0.9版本  最初版本,已棄用

HTTP 1.0版本  最初廣泛使用版本,支持多媒體資源,但是對緩存支持很差

HTTP 1.1版本  當前主流版本,增強了緩存功能。

HTTP 2.0版本  當前沒有主流使用的版本,但功能強大。

 

11.)HTTP請求細節:(報文)

細分為:①:建立、處理連接(是否接受或拒絕)

           ②:接受請求

           ③:處理請求

           ④:訪問資源

           ⑤:構建響應報文

           ⑥:發送響應報文

           ⑦:記錄日志

 

處理請求:對請求報文進行解析,並獲取請求資源和請求方法相關信息

請求報文首部:

GET /my_view_page.php HTTP/1.1   --網址網頁指定根目錄

Host: 10.0.17.183:8000

Connection: keep-alive

Cache-Control: max-age=0

Upgrade-Insecure-Requests: 1

(KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Referer: http://10.0.17.183:8000/my_view_page.php

Accept-Encoding: gzip, deflate, sdch

訪問資源:獲取http報文中請求指定的資源(存放在httpd服務器中,提供資源--->包括靜態資源和動態資源,

本地文件系統某個路徑,此路徑叫網頁根路徑--->會有多種路徑映射)

 

構建響應報文:服務端將資源封裝成響應報文,需要進行分類,明確標記資源類型。

              資源訪問可能會基於URL重定向方式進行響應(非客戶端的請求資源,而是另一個訪問路徑)

 

發送響應報文:把構建的報文發送給請求方

 

記錄日志:(同時方便分析客戶行為需求)

 

12.)http協議的軟件程序解決方案

靜態資源請求WEB服務器程序

①:httpd(apache)

②:nginx

③:lighttpd

動態資源:

    IIS

    tomcat  jboss  jetty   輕量級

    weblogic  webshpere  企業級重量級

 

市場份額WEB服務器領域數據分析網站:https://news.netcraft.com/

 

http軟件(apache)的詳細介紹和安裝(centos-6和centos-7)

apache有apache軟件基金會提供,屬於開源軟件,在當今主要的web服務器領域是絕對的龍頭老大。

apache程序在系統中命名---->httpd

 

13.)httpd程序的特點(工作模式)

高度模塊化的設計:httpd內核+模塊(modules)

DSO:動態共享對象,裝載器根據當前地址空間的空閑情況,動態分配一塊足夠大小的虛擬地址空間給相應的共享對象

MPM:多路訪問模塊(多種不同的I/O模型,包括prefork模型,worker模型,event模型)

1.prefork:多進程模型,每個進程響應一個請求。一個主進程(監聽套接字),負責生成n個子進程,子進程為工作進程,沒有用戶請求,也會生成空閑進程,等待請求達到。最大不超過1024個進程。

2.worker:多線程模型(多進程生成,一個進程生成多個線程),一個線程響應一個請求

3.event:事件驅動模型,一個進程響應多個請求。(httpd-2.2屬於試驗階段,httpd-2.4生產環境已大規模使用)

14.)URI

<1>什么是URI

URI,通一資源標志符(Uniform Resource Identifier, URI),表示的是web上每一種可用的資源,如 HTML文檔、圖像、視頻片段、程序等都由一個URI進行定位的。

<2>URI的結構組成

URI通常由三部分組成:

①訪問資源的命名機制;

②存放資源的主機名;

③資源自身的名稱。

<3>URI舉例

如:https://blog.csdn.net/qq_32595453/article/details/79516787

我們可以這樣解釋它:

①這是一個可以通過https協議訪問的資源,

②位於主機 blog.csdn.net上,

③通過“/qq_32595453/article/details/79516787”可以對該資源進行唯一標識(注意,這個不一定是完整的路徑)

二、URL

URL是URI的一個子集。它是Uniform Resource Locator的縮寫,譯為“統一資源定位 符”。

通俗地說,URL是Internet上描述信息資源的字符串,主要用在各種WWW客戶程序和服務器程序上。

采用URL可以用一種統一的格式來描述各種信息資源,包括文件、服務器的地址和目錄等。

URL的一般格式為(帶方括號[]的為可選項):

protocol :// hostname[:port] / path / [;parameters][?query]#fragment

URL的格式由三部分組成: 

①第一部分是協議(或稱為服務方式)。

②第二部分是存有該資源的主機IP地址(有時也包括端口號)。

③第三部分是主機資源的具體地址,如目錄和文件名等。

第一部分和第二部分用“://”符號隔開,

第二部分和第三部分用“/”符號隔開。

第一部分和第二部分是不可缺少的,第三部分有時可以省略。 

三、URI和URL之間的區別

從上面的例子來看,你可能覺得URI和URL可能是相同的概念,其實並不是,URI和URL都定義了資源是什么,但URL還定義了該如何訪問資源。URL是一種具體的URI,它是URI的一個子集,它不僅唯一標識資源,而且還提供了定位該資源的信息。URI 是一種語義上的抽象概念,可以是絕對的,也可以是相對的,而URL則必須提供足夠的信息來定位,是絕對的。

URL 和 URI 區別

本文我們討論URL 和 URI 的主要區別,並通過示例說明這些差異。

URL 和 URI

直接差異來自其定義:

Uniform Resource Identifier (URI) − 對任何抽象或物理資源進行完整標識的字符序列。 Uniform

Resource Locator (URL) − 除了標識資源可用的位置之外,URI的一個子集描述了訪問該資源的主要機制。

現在我們可以得出結論:每個URL都是一個URI,后面我們會看到情況並非如此。

語法

所有URI,不管其是否為URL,需遵循形式:

scheme:[//authority][/path][?query][#fragment]

1

每部分描述如下:

scheme − 對於 URL, 是訪問資源的協議名稱;對其他URI,是分配標識符的規范的名稱

authority − 可選的組成用戶授權信息部分,主機及端口(可選)

path − 用於在scheme和authority內標識資源

query − 與路徑一起的附加數據用於標識資源。對於url是查詢字符串

fragment − 資源特定部分的可選標識符

為了方便地識別特定的URI是否是URL,我們可以檢查它的scheme。每個URL都必須從以下scheme開始:ftp、http、https、gopher、mailto、news、nntp、telnet、wais、file或prospero。如果不是以此開頭,則不是URL。

現在我們已經了解了語法,讓我們看一些示例。下面是uri列表,其中只有前三個是url:

    ftp://ftp.is.co.za/rfc/rfc1808.txt

    https://tools.ietf.org/html/rfc3986

    mailto:john@doe.com

    tel:+1-816-555-1212

    urn:oasis:names:docbook:dtd:xml:4.1

    urn:isbn:1234567890

 


免責聲明!

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



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