內容:html
1.預備知識前端
2.http協議面試
3.面試常問瀏覽器
1.預備知識服務器
(1)網址組成(URL構成)網絡
1 網址組成(四部分) 2 協議 http, https(https 是加密的 http) 3 主機 g.cn zhihu.com之類的網址 4 端口 HTTP 協議默認是 80,所以通常不用填寫 5 路徑 下面的「/」和「/question/31838184」都是路徑 6 http://www.zhihu.com/ 7 http://www.zhihu.com/question/31838184
(2)通訊原理dom
1 電腦通訊靠IP地址,IP地址記不住就發明了域名(domain name),而後電腦 2 自動向DNS服務器(domain name server)查詢域名對應的IP地址 3 4 好比g.cn這樣的網址,能夠經過電腦的ping程序查出對應 IP 地址 5 ➜ ping g.cn 6 PING g.cn (74.125.69.160): 56 data bytes 7 8 9 端口是什麼? 10 一個比喻: 11 用郵局互相寫信的時候,ip至關於地址(也能夠看作郵編,地址是域名) 12 端口是收信人姓名(由於一個地址好比公司、家只有一個地址,可是卻可能有不少收信人) 13 端口就是一個標記收信人的數字。 14 端口是一個 16 位的數字,因此範圍是 0-65535(2**16) 15 實際上IP是標識一臺電腦在網絡中的位置,而端口則是標識這臺電腦上的某個軟件16 某臺電腦的IP地址+端口能夠標識這臺電腦上的某個軟件,通訊實際上就是經過IP地址+端口的方式實現
2.http協議ui
(1)http協議是什麼google
1 一個傳輸協議,協議就是雙方都遵照的規範。 2 爲何叫超文本傳輸協議呢,由於收發的是文本信息。 3 1,瀏覽器(客戶端)按照規定的格式發送文本數據(請求)到服務器 4 2,服務器解析請求,按照規定的格式返回文本數據到瀏覽器 5 3,瀏覽器解析獲得的數據,並作相應處理
(2)請求和返回的數據格式加密
1 請求和返回是同樣的數據格式,分爲4部分: 2 請求行或者響應行 3 Header(請求的 Header 中 Host 字段是必須的,其餘都是可選) 4 \r\n\r\n(連續兩個換行回車符,用來分隔Header和Body) 5 Body(可選)
(3)請求格式
1 請求的格式,注意大小寫(這是一個不包含Body的請求): 2 原始數據以下 3 'GET / HTTP/1.1\r\nhost:g.cn\r\n\r\n' 4 打印出來以下 5 GET / HTTP/1.1 6 Host: g.cn 7 8 其中: 9 GET 是請求方法(還有POST等,這就是個標誌字符串而已) 10 / 是請求的路徑(這表明根路徑) 11 HTTP/1.1 中,1.1是版本號,通用了20年 12 13 具體字符串是 'GET / HTTP/1.1\r\nhost:g.cn\r\n\r\n'
(4)返回格式
1 返回的數據以下 2 HTTP/1.1 301 Moved Permanently 3 Alternate-Protocol: 80:quic,p=0,80:quic,p=0 4 Cache-Control: private, max-age=2592000 5 Content-Length: 218 6 Content-Type: text/html; charset=UTF-8 7 Date: Tue, 07 Jul 2015 02:57:59 GMT 8 Expires: Tue, 07 Jul 2015 02:57:59 GMT 9 Location: http://www.google.cn/ 10 Server: gws 11 X-Frame-Options: SAMEORIGIN 12 X-XSS-Protection: 1; mode=block 13 14 15 16 Body部分太長,先不貼了 17 其中響應行(第一行): 18 HTTP/1.1 是版本 19 301 是「狀態碼」,參見文末連接 20 Moved Permanently 是狀態碼的描述 21 瀏覽器會本身解析Header部分,而後將Body顯示成網頁
(5)http協議的做用
1 ——前端掌握 HTTP 協議有什麼用—— 2 3 能夠用 JS 動態抓取內容構建頁面 4 好比動態評論、加載數據 5 好比天氣預報程序 6 好比壁紙圖片庫 7 瀏覽器提供了使用 HTTP 協議收發數據的接口,名爲 AJAX 8 這是一個重要的技術
3.面試常問
HTTP請求的整個過程是什麼樣的?答案以下: