初次使用Apache、ip地址、防火墙、域名、DNS、hosts文件、端口、URL介绍、Apache配置文件、配置虚拟主机、请求响应、http协议、
Apache提供web服務:
啟動Apache,讓其客戶端可以使用你機器上安裝的Apache提供的web服務,訪問你機器上的網(wǎng)站。這種情況下你的計算機就是服務器,別人的機器就是客戶端。
注意:確保配置文件語法檢查通過,確保80端口沒有被其他程序占用,確保防火墻允許80端口的請求 ,如果出現(xiàn)Forbidden情況,確保配置文件http.conf中的DocumentRoot之后的Directory配置的與DocumentRoot路徑相同。 對于我們開發(fā)階段大多數(shù)是自己訪問自己設備上面的站點,所以我們一定要分清楚客戶端和服務端,客戶端局限于瀏覽器,代碼和Apache相關的文件都要放在服務端。
IP地址:
設備在某個網(wǎng)站中的地址,目前最常見的格式[0-255].[0-255].[0-255].[0-255],作用就是標識一個網(wǎng)絡中的設備(計算機,手機,電視)在某一個具體網(wǎng)絡中的地址,127.0.0.1是本地回環(huán)地址,即某個設備默認的IP。
防火墻:
用來禁用某個應用對網(wǎng)絡的請求的。
域名:
由于IP地址都是沒有規(guī)律的一些數(shù)字組成的,很難被人記住,不利于廣泛傳播,所以就有人想出要給IP起別名,即后來的域名,域名是要花錢注冊的。
DNS:
通過寬帶運營商提供的服務解析一個域名背后的IP,這個過程叫做DNS尋址,幫你完成DNS尋址過程的服務器叫做DNS服務器。
hosts文件:
操作系統(tǒng)在發(fā)起對DNS服務器的查詢之前,會先檢查本地的hosts文件,如果這個文件中包含了對當前需要解析的域名的配置,則不在發(fā)起對DNS服務器的請求,直接用hosts文件中配置的IP進行對服務器請求;
hosts文件路徑:C:\Windows\System32\drivers\etc\hosts
注意:本機的hosts文件配置只能影響到本機的DNS尋址,只有以管理員權限運行編輯器才有權利修改hosts文件
端口:
計算機本身是一個封閉的環(huán)境,如果需要有數(shù)據(jù)通信往來,必須有門,這個門在術語上就叫端口,每個端口都有一個編號,每臺計算機只有65536個端口(0-65536)。
監(jiān)聽:占門的過程,可以通過命令運行:netstat -an命令監(jiān)聽本機的端口使用情況
端口查詢:推薦百度查詢,http的端口默認是:80;https的端口默認是:443
URL(Uniform Resource Locator):
統(tǒng)一資源定位符,通俗點來說就是表示網(wǎng)絡當中某個網(wǎng)頁完整的訪問地址,它具有一定的格式:
https: // user : pass @sub.host.com : 8080 /p/a/t/h ? query=string #hash協(xié)議 用戶名 密碼 主機名 端口 路徑名 搜索 不發(fā)送到服務器Apache配置文件:
配置文檔推薦:http://httpd.apache.org/docs/current/
監(jiān)聽端口:
監(jiān)聽端口可以隨意修改為任意一個未被其他程序監(jiān)聽的端口,可以通過設置配置文件httpd.conf中的Listen指令后面的數(shù)字修改。
網(wǎng)站根目錄:
存放網(wǎng)站文件的頂層目錄,通常URL中域名后面的第一個斜線對應的就是網(wǎng)站根目錄。(Apache默認網(wǎng)站根目錄是安裝目錄中的htdocs文件夾)
默認文檔:
訪問某一個目錄時(沒有指定具體的文件),默認訪問的文件就叫默認文檔,一般命名為index.html、index.php等;注:動態(tài)網(wǎng)站情況會比較特殊,需要單獨考慮,不一定是這個規(guī)則。
配置網(wǎng)站根目錄:
Apache默認網(wǎng)站根目錄是安裝目錄中的htdocs文件夾,為了方便對網(wǎng)站的管理,一般我們會將網(wǎng)站根目錄通過配置文件httpd.conf配置在一個自定義目錄中,當然不介意的話可以不用修改配置默認網(wǎng)站根目錄。如需要修改,則通過修改配置文件httpd.conf中的網(wǎng)站根目錄DocumentRoot及Director 選項的指向來修改跟目錄。
配置默認文檔及目錄瀏覽設置:
配置文件httpd.conf中DirectoryIndex是用來配置默認文檔的,如配置index.html為默認文檔:DirectoryIndex index.html,默認文檔可以配置多個(由前到后依次去找,找到為止,如果找不到其中默認的文件,則啟用目錄瀏覽);如果不想啟用目錄瀏覽,只需要在當前目錄添加一個空白的index.html文件即可,或使用目錄瀏覽拒絕訪問:在httpd.conf文檔中修改Options Indexes FollowSymLinks為Options FollowSymLinks也可以。
配置虛擬主機:
虛擬主機:
如果一臺機器上只有一個網(wǎng)站的話,是沒有任何問題,但是實際中一臺機器上面可能同時存放多個項目,此時就需要配置多個虛擬主機來解決這個問題。
配置虛擬主機:
虛擬主機的配置是很常見的,避免破壞主配置文件中的其他配置,通常把配置虛擬主機的文件單獨抽離出一個文件,之后在引入主配置文件。其抽離的配置文件目錄為:C:\t\Apache\conf\extra\httpd-vhosts.conf。具體流程如下:
1.在主配置文件httpd.conf中找到Include conf/extra/httpd-vhosts.conf指令,將其注釋去掉或不帶注釋復制粘貼在這,作用是引入httpd-vhosts.conf文件2.在抽離的虛擬主機配置文件httpd-vhosts.conf中添加一個虛擬主機配置的節(jié)點:(這里可以添加多個虛擬主機節(jié)點來配置多個虛擬主機) <VirtualHost *:80>-----------------------------------------------------------虛擬主機的配置,綁定任意IP的80端口ServerAdmin webmaster@dummy-host.example.com-----------------------------自己的郵箱地址DocumentRoot F:/demo-----------------------------------------------------項目存放的根目錄<Directory F:/demo>------------------------------------------------------目錄權限設置Require all granted--------------------------------------------------解鎖所有的請求,授權Options Indexes FollowSymLinks---------------------------------------開啟目錄瀏覽AllowOverride None---------------------------------------------------不允許目錄內(nèi)。htaccess文件覆蓋此處配置</Directory>ServerName day-01.io-----------------------------------------------------域名ServerAlias www.day-01.io------------------------------------------------另一個域名(別名)ErrorLog "logs/day-01.io-error.log"--------------------------------------錯誤日志CustomLog "logs/day-01.io-access.log" common-----------------------------自定義日志 </VirtualHost> 如: <VirtualHost *:80>ServerAdmin 810665436@qq.comDocumentRoot E:/web前端<Directory E:/web前端>Require all grantedOptions Indexes FollowSymLinksAllowOverride None</Directory>ServerName myblog.comErrorLog "logs/dummy-host.example.com-error.log"CustomLog "logs/dummy-host.example.com-access.log" common </VirtualHost>3.如果配置的域名沒有解析到DNS服務器上,這里需要在本地hosts文件中將域名解析到IP地址:C:\Windows\System32\drivers\etc文件夾中的hosts文件添加域名的指向:127.0.0.1(本地IP) myblog.com項目的域名4.重啟Apache,在瀏覽器搜索配置的域名進行測試。靜態(tài)網(wǎng)站與動態(tài)網(wǎng)站:
請求響應:
瀏覽器請求網(wǎng)站到看到頁面做了什么?
用戶輸入網(wǎng)址—瀏覽器發(fā)送請求到服務器—服務器發(fā)送代碼給瀏覽器—瀏覽器接收代碼渲染網(wǎng)頁給用戶
1.用戶打開瀏覽器輸入網(wǎng)址的URL
2.瀏覽器通過DNS服務器獲取訪問的網(wǎng)站IP地址
3.瀏覽器發(fā)起對這個IP的請求
4.服務端接收到這個請求,進行相應的處理
5.服務端處理完的結果返回給用戶瀏覽器
6.瀏覽器將接收到的服務端的結果呈現(xiàn)到界面上
瀏覽器端:1.用戶在瀏覽器中輸入要訪問的URL地址2.瀏覽器解析用戶輸入的URL地址------------知域名 + 端口號3.瀏覽器先檢查本地緩存是否有這個域名,有的話可以得到IP,沒有則執(zhí)行下一步4.瀏覽器發(fā)起一個DNS系統(tǒng)調(diào)用--------------知IP4.1先檢查操作系統(tǒng)的緩存里面有沒有這個域名,沒有則執(zhí)行下一步4.2在系統(tǒng)的hosts文件中找是否有這個域名,沒有則執(zhí)行下一步4.3會對DNS服務器發(fā)起一個系統(tǒng)調(diào)用DNS服務器:DNS服務器存有com,cn,net等域5.瀏覽器會通過本地的隨機端口建立一個與服務端指定端口之間的連接通道6.瀏覽器會將客戶端的一些信息打成 包(請求報文) 并把這個 包(請求報文) 通過連接通道發(fā)送到web服務端|||||||||| 服務端:web server(Apache):1.打開提交過來的 包,拿到 包 里面的請求路徑2.根據(jù)請求路徑對應文件的擴展名找到文件的MIME type(在Apache的配置文件mime.types中)3.判斷文件類型是否為靜態(tài)文件,如果是靜態(tài)文件,則直接讀取這個文件的內(nèi)容,否則交給模塊(php)處理,之后把執(zhí)行結果返回給web server4.服務端會把要發(fā)給客戶端的數(shù)據(jù)打包(響應報文),之后通過連接通道發(fā)給瀏覽器端||||||||||瀏覽器端:7.打開服務端返回給瀏覽器的包(響應報文),找到響應報文中的Content-type,根據(jù)Content-type的值決定如何響應內(nèi)容。8.如果是html,則渲染在瀏覽器的界面上。http協(xié)議:
HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)的定義:最早是計算機與計算機之間溝通的一種標準協(xié)議,現(xiàn)在http應用于各種領域的端與端之間的通訊協(xié)議。
約定的內(nèi)容:請求/響應報文格式 請求方法—GET/POST 響應狀態(tài)—200/404/302/304 預設請求/響應頭
約定的形式:
1.客戶端通過隨機端口與服務器的某個固定端口(一般為80端口)建立連接三次握手2.客戶端是通過這個連接 ‘發(fā)送請求(請求報文)’ 到服務端3.服務端監(jiān)聽端口得到客戶端發(fā)送過來的請求4.服務端通過連接響應給客戶端狀態(tài)和內(nèi)容(響應報文)請求報文格式:請求行====>請求頭====>空行====>請求體
響應報文格式:狀態(tài)行====>響應頭====>空行====>響應體
通過header()實現(xiàn)文件下載:
header是用來設置響應頭的,里面Content-Type屬性可以判斷數(shù)據(jù)格式供瀏覽器處理,當Content-Type屬性的值設置為不識別的值時,文件就會被下載下來,如:
<?php header('Content-Type: application/octet-stream');//特殊需要記憶 ?>提示:本文圖片等素材來源于網(wǎng)絡,若有侵權,請發(fā)郵件至郵箱:810665436@qq.com聯(lián)系筆者刪除。
筆者:苦海
總結
以上是生活随笔為你收集整理的初次使用Apache、ip地址、防火墙、域名、DNS、hosts文件、端口、URL介绍、Apache配置文件、配置虚拟主机、请求响应、http协议、的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python语言的单行注释以井号开头_【
- 下一篇: php mcrypt取消,php – M