華子目錄
- www簡介
- 常見Web服務程序介紹:
- 服務器主機
- 主要數據
- 瀏覽器
- 網址及http介紹
- url
- http請求方法
- http協議請求的工作流程
- www服務器類型
- 靜態網站
- 動態網站
- 快速安裝Apache
- 安裝
- 準備工作
- httpd所需目錄
- 主配置文件
- 實驗操作
www簡介
- Web網絡服務也叫www(world wide web全球信息廣播)萬維網服務,一般是指能夠讓用戶通過瀏覽器訪問到互聯網中文檔等資源的服務
- Web網絡服務是一種被動訪問的服務程序,即只有接收到互聯網中其他主機發送的請求后才會響應,最終用于提供服務程序的Web服務器會通過http(超文本傳輸協議)或https(完全超文本傳輸協議)把請求的內容傳送給用戶,如圖:
常見Web服務程序介紹:
- IIS:Windows系統中默認Web服務程序是IIS(Internet Information Services),這是一款圖形化的網站管理工具,IIS程序不光能提供Web網站服務,還能夠提供FTP,NMTP,SMTP等服務功能,但只能在Windows系統中使用。
- Nginx:2004年10月4日,為俄羅斯知名門戶站點而開發的Web服務程序Nginx橫空出世。Nginx程序作為一款輕量級的網站服務軟件,因其穩定性和豐富的功能而快速占領服務器市場,但是Nginx最終被認可的還是其低系統資源占用,內存少且并發能力強,因此得到了國內諸如新浪,網易,騰訊等門戶站的青睞
- Apache:取自美國印第安人土著語Apache,寓意著擁有高超的作戰策略和無窮的耐性,由于其跨平臺和安全性廣泛被認可且擁有快速,可靠,簡單的API擴展。目前擁有很高的Web服務軟件市場占用率,全球使用最多的Web服務軟件,開源,跨平臺(可運行于Unix,Linux,Windows中)
- Tomcat:屬于輕量級的Web服務軟件,一般用于開發的調試JSP代碼,通常認為Tomcat是Apache的擴展程序
服務器主機
- 網站是由域名,網頁源程序和主機空間組成的,其中主機空間則是用于存放網頁源代碼并能夠將網頁內容展示給用戶,雖然本小節與Apache服務沒有直接關系,但如果您想要在互聯網中搭建網站并被順利訪問,主機空間一定不能選錯
- 虛擬主機:在一臺服務器中分出一定的磁盤空間供用戶放置網站,存放數據等,僅提供基礎的網站訪問,數據存放與傳輸流量功能,能夠極大的降低用戶費用,也幾乎不需要管理員維護除網站數據以外的服務,適合小型網站
- VPS(Virtual Private Server):在一臺服務器中利用OpenVZ,Xen或KVM等虛擬技術模擬出多個主機,每個主機都有獨立的ip地址,操作系統,實現不同VPS之間磁盤空間,內存,CPU資源,進程與系統配置間的完全隔離,管理員可自由使用分配到的主機中的所有資源,所以需要有一定的維護系統能力,適合小型網站。
- 云服務器(ECS):是一種整合了計算,存儲,網絡,能夠做到彈性伸縮的計算服務,其使用起來與VPS幾乎一樣,但差別是云服務器建立在一組集群服務器中,每個服務器都會保存一個主機的鏡像(備份),大大的提升了安全穩定性,另外還具備了靈活性與擴展性,用戶只需按使用量付費的即可,適合大中小型網站。
- 獨立服務器:這臺服務器僅提供給您使用,詳細來講又可以區分為租用方式與托管方式。
- 租用方式:用戶只需將硬件配置要求告知IDC服務商,服務器硬件設備由機房負責維護,運維管理員一般需要自行安裝相應的軟件并部署網站服務,租期可以為月、季、年,減輕了用戶初期對硬件設備的投入,適合大中型網站。
- 托管方式:用戶需要自行購置服務器后交給IDC服務供應商的機房進行管理(繳納管理服務費用),用戶對服務器硬件配置有完全的控制權,自主性強,但需要自行維護、修理服務器硬件設備,適合大中型網站。
- 另外有必要提醒,選擇主機空間供應商時請一定要注意看口碑,綜合分析再決定購買,某些供應商會有限制功能、強制添加廣告、隱藏扣費或強制扣費等惡劣行為,一定一定不要上當!
主要數據
- 服務器所提供的最主要數據是超文本標記語言(Hyper Text Markup Language,HTML),多媒體文件(圖片,影像,聲音,文字等都屬于多媒體或稱為超媒體),HTML只是一些純文本數據,通過所謂的標記來規范所要顯示的數據格式
瀏覽器
- 客戶端收到服務器的數據之后需要軟件解析服務器所提供的數據,最后將效果呈現在用戶的屏幕上。
- 那么著名的瀏覽器就有內建在Windows操作系統內的IE瀏覽器(淘汰)和Microsoft Edge,還有Firefox瀏覽器和Google的chrome瀏覽器
網址及http介紹
- Web服務器提供的這些數據大部分都是文件,那么我們需要在服務器端先將數據文件寫好,并且放置在某個特殊的目錄下面,這個目錄就是我們整個網站的首頁,通常這個目錄默認在/var/www/html
- 瀏覽器是通過你在地址欄中輸入你所需要的網址來取到這個目錄的數據
url
- Uniform Resource Locator,統一資源定位符,對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。
- 網址格式:
<協議>://<主機或主機名>[:port]/<目錄資源,路徑>
- 協議:http,https,ftp等
- 主機地址或者主機名:主機地址就是服務器在因特網所在的IP地址。如果是主機名的話,那么就需要域名解析了
- 端口號(port):http為80,https為443 (IANA:互聯網數字分配機構)
- 0-1023:永久地分配給固定的應用程序使用
- 1024-41951:注冊端口,但要求不是特別嚴格,分配給程序注冊為某應用使用
- 41952-60000:客戶端程序隨機使用的端口,動態端口,或私有端口
http請求方法
-
在http通信中,每個http請求報文都包含一個方法,用以告訴web服務器端需要執行哪些具體的動作,這些動作包括:獲取指定web頁面、提交內容到服務器、刪除服務器上資源文件等。
-
狀態碼:由三位數字組成,第一個數字定義了響應的類別,且有五種可能取值
- 1xx:表示請求已接收,繼續處理
- 2xx:表示請求已被成功接收,理解
- 3xx:表示要完成請求必須進行更進一步的操作
- 4xx:表示請求又語法錯誤或請求無法實現
- 5xx:表示服務器未能實現合法的請求
-
常見狀態碼:
- 200:客戶端請求成功
- 400:客戶端請求有語法錯誤
- 401:請求未經授權
- 403:服務器收到請求,但拒絕服務
- 404:請求資源不存在
- 500:服務器發生不可預期的錯誤
- 503:服務器當前不能處理客戶端的請求,一段時間后可能恢復正常
http協議請求的工作流程
- 終端客戶在web瀏覽器地址欄輸入訪問地址http://www.ceshi.com:80/index.html
- web瀏覽器請求DNS服務器把域名www.ceshi.com解析成web服務器的IP地址
- web瀏覽器將端口號(默認是80)從訪問地址(URL)中解析出來
- web瀏覽器通過解析后的ip地址及端口號與web服務器之間建立一條TCP連接
- 建立TCP連接后,web瀏覽器向web服務器發送一條HTTP請求報文
- web服務器響應并讀取瀏覽器的請求信息,然后返回一條HTTP響應報文
- web服務器關閉HTTP連接,關閉TCP連接,web瀏覽器顯示訪問的網站內容到屏幕上
www服務器類型
靜態網站
- 僅提供用戶瀏覽的單向靜態網頁,單純是由服務器單向提供數據給客戶端,Server不需要與client端有互動,可以瀏覽網站,但是無法數據上傳。
動態網站
- 該站可以讓服務器與用戶互動,常見的例如留言板,博客。這種類型的網站需要通過“網頁程序語言”來實現與用戶互動的行為。常見的例如:PHP網頁程序語言,配合數據庫系統來進行數據的讀、寫。當你在向服務器請求數據時,其實是通過服務器端同一個網頁程序在負責將數據讀出或寫入數據庫,變動的是數據庫的內容,網頁程序并沒有任何改變
- 另外一種交互式的動態網頁主要是在客戶端實現。服務端將可執行的程序代碼(JavaScript)傳送給客戶端,客戶端的瀏覽器如果提供JavaScript的功能,那么該程序就可以在客戶端的計算機上面工作了;另外一種可在客戶端執行的就是flash動畫格式,在這種動畫格式內還可以進行程序設計
- 搭建動態網站的需求:LAMP(Linux+Apache+MySQL+PHP)
- Apache主要提供www的服務器平臺
- MySQL:傳統的文件讀取是很麻煩的,如果只要讀取該文件當中的一小部分,系統還是會將整個文件讀出來,若多個用戶同時讀取同一個文件時,那就會造成效率與系統上的問題,所以才會有數據庫系統的推出。數據庫其實是一種特殊格式的文件,這種文件要通過特殊接口(數據庫軟件)來進行讀寫。由于這個特殊接口已經針對數據的查詢、寫入做過優化設計,因此很適合多人同時寫入與查詢工作
- PHP:PHP可以被用來建立動態網頁,PHP程序代碼可以直接在HTML網頁當中嵌入,就像編輯HTML網頁一樣簡單。PHP是一種“程序語言”,這種程序語言可以直接在網頁當中編寫,不需要經過編譯即可執行
快速安裝Apache
安裝
[root@server ~]# yum install httpd -y
準備工作
[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# systemctl start httpd[root@server ~]# systemctl enable httpd[root@server ~]# systemctl status httpd
httpd所需目錄
[root@server ~]# cd /etc/httpd # 主配置文件所在目錄[root@server ~]# vim /etc/httpd/conf/httpd.conf # 主配置文件[root@server ~]# cd /var/www/html # 存儲默認網頁的目錄[root@server ~]# cd /var/log/httpd # 存儲網站訪問日志和錯誤日志的目錄
主配置文件
[root@server ~]# vim /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd" # 服務目錄
#Listen 12.34.56.78:80 # 設置監聽的ip地址及端口
Listen 80 # 默認開啟監聽端口為80
Include conf.modules.d/*.conf # 加載額外配置文件
User apache # 運行服務的用戶
Group apache # 運行服務的工作組
ServerAdmin root@localhost # 管理者的郵箱
#ServerName www.example.com:80 # 設置域名及端口號,必須要有域名解析
<Directory /> # <>表示起始標志,</>表示結束標志
# 設置目錄的權限,當瀏覽器中輸入url地址后,若訪問服務器某目錄下的某個文件,必須要設置其權限,保證數據的安全性
# AllowOverride:是否允許權限覆蓋,如果有額外的權限文件,是否允許額外文件來對當前Directory進行權限覆蓋AllowOverride none # 不允許覆蓋Require all denied # 禁止所有來源訪問文件或目錄# Require all granted # 允許所有來源訪問
</Directory>DocumentRoot "/var/www/html" # 網頁存放的默認目錄
<Directory "/var/www"> # 設置網頁的權限,與DocumentRoot搭配使用AllowOverride None# Allow open access:Require all granted
</Directory>