一.什麼是萬維網:
萬維網是一個大規模的,聯機式的信息存儲所,英文簡稱Web。
二.超文本,超媒體:
所謂超文本是指包括制定其它文檔的鏈接的文本(text)。
所謂超媒體是指出了包涵文檔text之外,還包含其它表示方式的信息,如圖形,圖像,聲音,動畫,視頻圖像等。
三.實現萬維網需要的幾個必須解決的關鍵問題
1.怎樣標誌分佈在整個互聯網上的萬維網文檔?-----》URL
URL(統一資源定爲符)
資源位置和訪問這些資源的方法;資源地址;互聯網上的所有資源,都有一個唯一的確定的URL。
URL的一般形式由一下四個部分組成:
<協議>://<主機>:<端口>/<路徑>
http://localhost:8080/工程路徑
2.用什麼樣的協議來實現萬維網上的各種鏈接?-----》HTTP
HTTP(超文本傳輸協議)
1)對客戶端和服務器端之間數據傳輸的格式規範,格式簡稱爲“超文本傳輸協議”。
2)HTTP協議本身是無鏈接:爲了保證數據的可靠傳輸,HTTP使用了面相鏈接的TCP作爲運輸層協議。因此不用考慮數據在 傳輸過程中被丟棄後又怎樣被重傳。
3)HTTP協議是無狀態的(stateless):服務器不記錄用戶是否訪問過也不記錄訪問次數。
簡化了服務器的設計,是服務器更容易支持大量併發的HTTP請求。
無狀態協議對於事務處理沒有記憶能力。缺少狀態意味着如果後續處理需要前面的信息,那是無法取到的。
爲了解決這個問題:通過Cookie;通過Session會話保存。
4)HTTP協議請求一次萬維網文檔所需要的時間:
3.怎樣使不同作者創作的不同風格的萬維網文檔,都能在互聯網上的各種主機上顯示出來,同時使用用戶清楚的知道在什麼地 方存在着鏈接?-----》HTML
四.HTTP的報文結構
1)請求報文--從客戶向服務器發送請求報文。
請求行:包含請求方法;URI;HTTP版本信息
請求首部字段
請求內容實體
例子:
GET /dir/index/htm HTTP/1.1 {請求行使用了相對URL}
Host:www.baidu.com {此行是首部行的開始。這行給出主機的域名}
Connection:close {告訴服務器發送完請求的文檔後就可釋放鏈接}
User-Agent:Mozilla/5.0 {表明用戶代理是實用火狐瀏覽器Firefox}
Accept-Language:cn {表示擁護希望優先的到中文版本的文檔}
2)響應報文--從服務器到客戶的回答。
狀態行:包含HTTP版本;狀態碼;狀態碼的原因短語
響應首部字段
響應內容實體
例子:
HTTP/1.1 301 Moved Permanently {永久性地轉移了}
Location:http://www.baidu.com/ee/index.html {新的URL}
狀態碼:都是三位數字,分5大類。
1xx:表示信息性代碼,標示客戶端應該採取的其他動作,請求正在進行。
2xx:表示客戶請求成功,如接受或知道了。
3xx:表示重定向,如要完成請求還必須採取到進一步的行動。
4xx:表示由客戶端引發的錯誤,如請求中有錯誤的語法或不能完成。
5xx:表示由服務器端引發的錯誤,如服務器失效無法完成請求。
200:請求被正常處理
204:請求被受理但沒有資源可以返回
206:客戶端只是請求資源的一部分,服務器只對請求的部分資源執行GET方法,相應報文中通過Content-Range指定範圍的資源。
301:永久性重定向
302:臨時重定向
303:與302狀態碼有相似功能,只是它希望客戶端在請求一個URI的時候,能通過GET方法重定向到另一個URI上
304:發送附帶條件的請求時,條件不滿足時返回,與重定向無關
307:臨時重定向,與302類似,只是強制要求使用POST方法
400:請求報文語法有誤,服務器無法識別
401:請求需要認證
403:請求的對應資源禁止被訪問
404:服務器無法找到對應資源
500:服務器內部錯誤
503:服務器正忙
五.HTTP協議中有哪些請求方式?
GET:用於請求訪問已經被URI(統一資源標識符)識別的資源,可以通過URL傳參給服務器。
POST:用於傳輸信息給服務器,主要功能與GET方法類似,但一般推薦使用POST方式。
PUT:傳輸文件,保文主體中包含文件內容,保存到對應URI位置。
HEAD:獲得報文首部,與GET方法類似,只是不返回報文主體,一般用於驗證URI是否有效。
DELETE:刪除文件,與PUT方法相反,刪除對應URI位置的文件。
OPTIONS:查詢響應URI支持的HTTP方法。
注意:GET方法和POST方法的區別!!!!
區別一:
1)get傳輸數據通過URL請求,以filed = value 的形式,置於URL後,並用“?”連接,多個請求數據間用“&”連 接,如:http://127.0.0.1/Test/login.action?name=admin&password=admin,這個過程用戶是可見的。
2)post傳輸數據通過Http的post機制,將字段與對應值封裝在請求實體中發送給服務器,這個過程對用戶是不可見 的。
區別二:
1)get重點在從服務器上獲取資源。
2)post重點在向服務器發送數據。
區別三:
1)get傳輸的數據量小,因爲受URL長度限制,但效率較高。
2)post傳輸大量數據,所以上傳文件時只能用post方式。
區別四:
1)get是不安全的,因爲URL是可見的,可能會泄露私密信息。
2)post較get安全性較高。
區別五:
1)get方式只能支持ASCII字符,向服務器傳的中文字符可能會亂碼。
2)post支持標準字符集,可以正確傳遞中文字符。
六.HTTP與HTTPS優缺點?
通信使用明文不加密,內容可能被竊聽,也就是被抓包分析。
不驗證通信方身份,可能遭到僞裝
無法驗證報文完整性,可能被篡改
HTTPS就是HTTP加上加密處理(一般是SSL安全通信線路)+認證+完整性保護
七.HTTP優化
利用負載均衡優化和加速HTTP應用
利用HTTP Cache來優化網站
八.HTTP協議有哪些特徵?
1)支持客戶/服務器模式;
2)簡單快速;
3)靈活;
4)無連接;
5)無狀態;
九.網絡傳輸的過程: