一、http協議實戰 1.URL(Uniform Resource Located) (1)使用FFTP的URL,例如:ftp://rtfm.mit.edu (2)使用HTTP的URL,例如:http://www.baidu.com 2.HTTP工作原理 (1)瀏覽器分析超i鏈接中的URL (2)瀏 ...
一、http協議實戰
1.URL(Uniform Resource Located)
(1)使用FFTP的URL,例如:ftp://rtfm.mit.edu
(2)使用HTTP的URL,例如:http://www.baidu.com
2.HTTP工作原理
(1)瀏覽器分析超i鏈接中的URL
(2)瀏覽器向DNS請求解析網站的IP地址
(3)DNS將解析出的IP地址返回瀏覽器
(4)瀏覽器與伺服器建立TCP連接(80埠)
(5)瀏覽器請求文檔:GET/index.html
(6)伺服器給出響應,將文檔index.html發送給瀏覽器
(7)釋放TCP連接
(8)瀏覽器顯示index.html中的內容
3.持久連接和非持久連接
4.無狀態性
是指同一個客戶端(瀏覽器)第二次訪問同一個Web服務,伺服器無法知道這個客戶端曾經訪問過。HTTP的無狀態性簡化了伺服器的設計,使其更容易支持大量併發的HTTP請求。
5.HTTP報文結構:(1)請求報文;(2)返回報文;(3)請求報文的方法;(4)響應報文中的狀態碼;(5)首部欄位或消息頭;(6)報文結構實例。
6.請求報文:即從客戶端(瀏覽器)向Web伺服器發送的請求報文,報文的所有欄位都是ASCII碼
{
方法 URL 版本 CRLF
首部欄位名 值 CRLF
首部欄位名 值 CRLF
.....
.....
首部欄位名 值 CRLFsho
CRLF
實體主體(Entity body)
}第一行是請求行,例如:GET/index.html/1.1
首部行:用來說明瀏覽器、伺服器或報文主體的一些信息/
如:
HOST:www.sxtyu.com
Connection:close
User:Agent:Mozilla/5.0
Accept-Language:cn
7.接收報文
{
版本 狀態碼 短語 CRLF
首部欄位名 值 CRLF
首部欄位名 值 CRLF
.....
.....
首部欄位名 值 CRLFs
CRLF
實體主體(Entity body)
}
第一行是狀態行,如:HTTP/1.1 200 OK
首部行:用來說明瀏覽器、伺服器胡總和報文主體的一些信息。如:
Date :Wed 08 May 2008 22
Sever:Apach/1.3.2(Unix)
Content0Length:
DateDaDat4096
Content-Type:text/html
7.請求報頭的方法
方法是對所有請求對象所進行的操作,也就是一些命令,請求報文中的操作有:
GET 請求讀取一個Web頁面 HEAD 請求讀取一個Web頁面的首部
POST 附加一個命名資源(如Web頁面)
PUT 請求存儲一個Web頁面
DELETE 刪除Web頁面
TRACE 用於測試,要求伺服器送回收到的請求
CONNECT 用於代理伺服器
OPTION 查詢特定選
8.響應報文中狀態碼
1xx 含義:通知信息;例如:100=伺服器正在處理客戶請求
2xx 含義:成功;例如:200=請求成功(OK)
3xx 含義:重定向;例如:301=頁面改變了位置
4xx 含義:客戶錯誤;例如:403=禁止的頁面;404=頁面未找到
5xx 含義:伺服器錯誤;例如:500=伺服器內部錯誤;503=以後再試
具體各個狀態碼的含義,請參考W3C的HTTP1.1標準規範RFC2616
http://www.w3.org/Protocols/rfc2616/rtc2616.html
五、源碼
2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料