URL是什么
- URL:Uniform Resource Location 統(tǒng)一資源定位符敞掘,用于定位互聯(lián)網(wǎng)上的資源
采用URL可以用一種統(tǒng)一的格式來描述各種信息資源箱沦,包括文件、服務(wù)器的地址和目錄等。
URL的格式URL的格式由下列三部分組成:
- 第一部分是協(xié)議(或稱為服務(wù)方式)身弊;
- 第二部分是存有該資源的主機(jī)IP地址(有時也包括端口號)娃弓;
- 第三部分是主機(jī)資源的具體地址典格。,如目錄和文件名等台丛。
- 第一部分和第二部分之間用“://”符號隔開耍缴,第二部分和第三部分用“/”符號隔開。第一部分和第二部分是不可缺少的挽霉,第三部分有時可以省略防嗡。
URL對應(yīng)http、file侠坎、ftp蚁趁、https協(xié)議
- http:超文本傳輸協(xié)議(HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個標(biāo)準(zhǔn)实胸。對應(yīng)網(wǎng)絡(luò)上的某個資源他嫡。
- file:本地文件傳輸協(xié)議,F(xiàn)ile協(xié)議主要用于訪問本地計算機(jī)中的文件庐完,就如同在Windows資源管理器中打開文件一樣钢属。對應(yīng)本地的某個資源
- ftp: 是File Transfer Protocol(文件傳輸協(xié)議)的英文簡稱,而中文簡稱為“文傳協(xié)議”假褪。用于Internet上的控制文件的雙向傳輸署咽。用Internet語言來說,用戶可通過客戶機(jī)程序向(從)遠(yuǎn)程主機(jī)上傳(下載)文件。
- https:(全稱:Hyper Text Transfer Protocol over Secure Socket Layer)宁否,是以安全為目標(biāo)的HTTP通道窒升,簡單講是HTTP的安全版。即HTTP下加入SSL層慕匠,HTTPS的安全基礎(chǔ)是SSL饱须,因此加密的詳細(xì)內(nèi)容就需要SSL。簡單來說台谊,就是加密后的http蓉媳。
而不加http和https的域名則是因為其域名和當(dāng)前頁面的協(xié)議保持一致
域名解析
對于http://jirengu.com 的URL,瀏覽器實際上不知道jirengu.com到底是什么東西锅铅,需要查找jirengu.com網(wǎng)站所在服務(wù)器的IP地址酪呻,才能找到目標(biāo)。域名比數(shù)字的IP好記盐须,所以HTML上顯示的是域名
- IP:網(wǎng)絡(luò)之間互連的協(xié)議(IP)是Internet Protocol的外語縮寫玩荠,中文縮寫為“網(wǎng)協(xié)”。每個處于互聯(lián)網(wǎng)中的設(shè)備都有IP 地址贼邓,形如 192.168.0.1
- 域名:對于http://jirengu.com:8080/blog, jirengu.com就是域名阶冈;就是URL中的第二部分去掉端口號后剩下的部分**
局域網(wǎng) IP 和公網(wǎng) IP 是有差別的,如果你在某個局域網(wǎng)中塑径,那你上網(wǎng)時的使用的IP就是局域網(wǎng)的IP女坑,而不是你設(shè)備上的IP,而公網(wǎng)IP是需要申請的
域名解析的流程
- 1.瀏覽器緩存 – 瀏覽器會緩存DNS記錄一段時間
- 2.系統(tǒng)緩存 - 從 Hosts 文件查找是否有該域名和對應(yīng) IP统舀。
- 3.路由器緩存 – 一般路由器也會緩存域名信息匆骗。
- 4.SP DNS 緩存 – 比如到電信的 DNS 上查找緩存。
你所打開的域名按以上順序進(jìn)行緩存绑咱,如果都沒有找到绰筛,則向根域名服務(wù)器查找域名對應(yīng) IP,根域名服務(wù)器把請求轉(zhuǎn)發(fā)到下一級描融,直到找到 IP
電腦如果上不了網(wǎng)铝噩,修改dns為8.8.8.8(google提供的dns服務(wù)器) 或者114.114.114.114(國內(nèi)某個dns服務(wù)器),你所打開的域名就會直接從上面的服務(wù)器中尋找IP
dns 劫持:當(dāng)你查找的域名時窿克,所在的根服務(wù)器中的域名遭惡意篡改后給了個假的IP地址骏庸,導(dǎo)致你訪問的網(wǎng)站不對,危害大年叮,一般攻擊的是ISP DNS
服務(wù)器處理階段
服務(wù)器是一臺安裝系統(tǒng)的機(jī)器具被,常見的系統(tǒng)如Linux、windows server 2012
系統(tǒng)里安裝的處理請求的應(yīng)用叫 Web server
Web服務(wù)器
常見的 web服務(wù)器有 Apache只损、Nginx一姿、IIS七咧、Lighttpd
web服務(wù)器接收用戶的Request 交給網(wǎng)站代碼,或者接受請求反向代理到其他 web服務(wù)器
示例:
用戶發(fā)送Request交給Web服務(wù)器(ngnix)叮叹,ngnix接收后艾栋,查找到IP地址202.112.230.14,當(dāng)然蛉顽,同一個IP下對應(yīng)有不同的Request請求蝗砾,通過ngnix尋找到該IP對應(yīng)的服務(wù)器下的文件夾,再發(fā)送給用戶
網(wǎng)站處理流程
MVC 模型(model)-視圖(view)-控制器(controller)
- 瀏覽器向 /users 發(fā)送請求携冤;
- Rails 的路由把 /users 交給 Users 控制器的 index 動作處理悼粮;
- index 動作要求 User 模型讀取所有用戶(User.all);
- User 模型從數(shù)據(jù)庫中讀取所有用戶曾棕;
- User 模型把所有用戶組成的列表返回給控制器扣猫;
- 控制器把所有用戶賦值給 @users 變量,然后傳入 index 視圖睁蕾;
- 視圖使用嵌入式 Ruby 把頁面渲染成 HTML苞笨;
- 控制器把 HTML 送回瀏覽器
我們所說的前端就是視圖的部分
瀏覽器處理階段
- HTML字符串被瀏覽器接受后被一句句讀取解析
- 解析到link 標(biāo)簽后重新發(fā)送請求獲取css
- 解析到 script標(biāo)簽后發(fā)送請求獲取 js,并執(zhí)行代碼
- 解析到img 標(biāo)簽后發(fā)送請求獲取圖片資源
繪制網(wǎng)頁階段
瀏覽器根據(jù) HTML 和 CSS 計算得到渲染樹子眶,繪制到屏幕上
由HTML和CSS來控制網(wǎng)頁的整個渲染效果,通過js來執(zhí)行完成網(wǎng)頁的視圖效果
通過上述過程簡單的描述了從URL到頁面展示的流程