https://juejin.im/entry/59b8fb276fb9a00a42474a6fhtml
什麼是HTTP?前端
超文本傳輸協議,是一個基於請求與響應,無狀態的,應用層的協議,常基於TCP/IP協議傳輸數據,互聯網上應用最爲普遍的一種網絡協議,全部的WWW文件都必須遵照這個標準。設計HTTP的初衷是爲了提供一種發佈和接收HTML頁面的方法。node
域名級別nginx
域名可分爲不一樣級別,包括頂級域名、二級域名、三級域名等。es6
子域名:子域名,是頂級域名(一級域名或父域名)的下一級web
泛域名是指一個域名下的全部子域名都被解析到同一個IP地址上。正則表達式
2.什麼是同源策略?數據庫
同源策略/SOP(Same origin policy)是一種約定,由Netscape公司1995年引入瀏覽器,它是瀏覽器最核心也最基本的安全功能,若是缺乏了同源策略,瀏覽器很容易受到XSS、CSFR等攻擊。所謂同源是指"協議+域名+端口"三者相同,即使兩個不一樣的域名指向同一個ip地址,也非同源。編程
同源策略限制如下幾種行爲:json
1) Cookie、LocalStorage 和 IndexDB 沒法讀取
2) DOM 和 Js對象沒法得到
3) AJAX 請求不能發送
https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
同源策略限制了從同一個源加載的文檔或腳本如何與來自另外一個源的資源進行交互。這是一個用於隔離潛在惡意文件的重要安全機制。
它的存在能夠保護用戶隱私信息,防止身份僞造等(讀取Cookie)。(http://www.imooc.com/article/40074)
若是兩個頁面的協議,端口(若是有指定)和主機都相同,則兩個頁面具備相同的源。
當涉及到同源策略時,Internet Explorer 有兩個主要的不一樣點
http://company.com:81/index.html
和 http://company.com/index.html
屬於同源而且不受任何限制。這些例外是非標準的,其它瀏覽器也未作出支持,但會助於開發基於window RT IE的應用程序。
使用 document.domain
來容許子域安全訪問其父域時,您須要在父域和子域中設置 document.domain 爲相同的值。
https://juejin.im/entry/59b8fb276fb9a00a42474a6f
重定向:重定向(Redirect)就是經過各類方法將各類網絡請求從新定個方向轉到其它位置(如:網頁重定向、域名的重定向、路由選擇的變化也是對數據報文經由路徑的一種重定向)。瀏覽器URL的地址欄改變
轉發是瀏覽器只作了一次訪問請求。重定向是瀏覽器作了至少兩次的訪問請求;
原文連接:https://blog.csdn.net/xianyadong/article/details/81230808
轉發是服務器行爲,重定向是客戶端行爲。轉發耗時比重定向少。
轉發——>客戶瀏覽器發送HTTP請求——>web服務器接受請求——>調用內部一個方法在容器內部完成請求處理和轉發動做——>再將轉發跳轉到的那個網頁資源返回給客戶; 轉發只能在同一個容器內完成 轉發的時候瀏覽器地址是不會變的,在客戶瀏覽器裏只會顯示第一次進入的那個網址或者路徑,客戶看不到這個過程,只是獲得了想要的目標資源。轉發行爲瀏覽器只作了一次請求。(轉發只能跳轉一次)
重定向——>客戶瀏覽器發送HTTP請求——>web服務器接受請求後發送302狀態碼以及新的位置給客戶瀏覽器——>客戶瀏覽器發現是302響應,則自動再發送一個新的HTTP請求,請求指向新的地址(302:Found 臨時移動,但資源只是臨時被移動。即你訪問網址A,可是網址A由於服務器端的攔截器或者其餘後端代碼處理的緣由,會被重定向到網址B。)——>服務器根據此請求尋找資源發個客戶;再客戶瀏覽器中顯示的是重定向以後的路徑,客戶能夠看到地址的變化。重定向行爲瀏覽器作了至少兩次請求。(重定向能夠跳轉屢次)
————————————————
回調
https://juejin.im/entry/59b8fb276fb9a00a42474a6f
跨域是指一個域下的文檔或腳本試圖去請求另外一個域下的資源,這裏跨域是廣義的。
其實咱們一般所說的跨域是狹義的,是由瀏覽器同源策略限制的一類請求場景。
1)經過jsonp跨域
2)document.domain + iframe跨域
3)location.hash + iframe
4)window.name + iframe跨域
5)postMessage跨域
6)跨域資源共享(CORS)
7)nginx代理跨域
8)nodejs中間件代理跨域
9)WebSocket協議跨域
3、JSONP的原理,怎麼實現的說一下什麼是Promise,請求失敗調用什麼函數
1.JSON
(https://www.liaoxuefeng.com/wiki/1022910821149312/1023021554858080)
http://es6.ruanyifeng.com/#docs/promise
1.Promise的含義
Promise是異步編程的一種解決方案。
所謂Promise
,簡單說就是一個容器,裏面保存着某個將來纔會結束的事件(一般是一個異步操做)的結果。從語法上說,Promise 是一個對象,從它能夠獲取異步操做的消息。Promise 提供統一的 API,各類異步操做均可以用一樣的方法進行處理。
2.Promise
對象有如下兩個特色。
(1)對象的狀態不受外界影響。Promise
對象表明一個異步操做,有三種狀態:pending
(進行中)、fulfilled
(已成功)和rejected
(已失敗)。只有異步操做的結果,能夠決定當前是哪種狀態,任何其餘操做都沒法改變這個狀態。這也是Promise
這個名字的由來,它的英語意思就是「承諾」,表示其餘手段沒法改變。
(2)一旦狀態改變,就不會再變,任什麼時候候均可以獲得這個結果。Promise
對象的狀態改變,只有兩種可能:從pending
變爲fulfilled
和從pending
變爲rejected
。只要這兩種狀況發生,狀態就凝固了,不會再變了,會一直保持這個結果,這時就稱爲 resolved(已定型)。若是改變已經發生了,你再對Promise
對象添加回調函數,也會當即獲得這個結果。這與事件(Event)徹底不一樣,事件的特色是,若是你錯過了它,再去監聽,是得不到結果的。
3.請求成功調用什麼函數
resolve
函數的做用是,將Promise
對象的狀態從「未完成」變爲「成功」(即從 pending 變爲 resolved),在異步操做成功時調用,並將異步操做的結果,做爲參數傳遞出去;
4.請求失敗調用什麼函數
reject
函數的做用是,將Promise
對象的狀態從「未完成」變爲「失敗」(即從 pending 變爲 rejected),在異步操做失敗時調用,並將異步操做報出的錯誤,做爲參數傳遞出去。
正則表達式匹配手機號 var regex= /^[1][3,4,5,7,8][0-9]{9}$/
郵箱:只容許英文字母、數字、下劃線、英文句號、以及中劃線組成
正則表達式匹配郵箱 var regex=/^([\w+\.])+@\w+([.]\w+)+$/
\w
匹配任意的字母、數字和下劃線,至關於[A-Za-z0-9_]
。
*
星號表示某個模式出現0次或屢次,等同於{0,}
。
模式的精確匹配次數,使用大括號({}
)表示。{n}
表示剛好重複n
次,{n,}
表示至少重複n
次,{n,m}
表示重複很多於n
次,很少於m
次。
+
加號表示某個模式出現1次或屢次,等同於{1,}
。
?
問號表示某個模式出現0次或1次,等同於{0, 1}
。
(1)點字符(.)
點字符(.
)匹配除回車(\r
)、換行(\n
) 、行分隔符(\u2028
)和段分隔符(\u2029
)之外的全部字符。注意,對於碼點大於0xFFFF
字符,點字符不能正確匹配,會認爲這是兩個字符。
(2)位置字符
位置字符用來提示字符所處的位置,主要有兩個字符。
^
表示字符串的開始位置$
表示字符串的結束位置(3)選擇符(|
)
豎線符號(|
)在正則表達式中表示「或關係」(OR),即cat|dog
表示匹配cat
或dog
。
正則表達式中那些有特殊含義的元字符,若是要匹配它們自己,就須要在它們前面要加上反斜槓。好比要匹配+
,就要寫成\+
。
模式的精確匹配次數,使用大括號({}
)表示。{n}
表示剛好重複n
次,{n,}
表示至少重複n
次,{n,m}
表示重複很多於n
次,很少於m
次。
若是是大張圖片應該用JPG,壓縮,產生的文件小
1.圖片懶加載
https://www.jianshu.com/p/68a6683b6a6a
網頁首先用一張輕量級的圖片佔位,當佔位圖片被拖動到視窗,瞬間加載目標圖片,而後替換佔位圖片。
http://www.javashuo.com/article/p-ewlriwvd-eh.html
圖片懶加載,在頁面上的未可視區域能夠添加一個滾動條事件,判斷圖片位置與瀏覽器頂端的距離與頁面的距離,若是前者小於後者,優先加載。
什麼是圖片懶加載問題:
對於圖片過多的頁面,爲了加速頁面加載速度,
因此不少時候咱們須要將頁面內未出如今可視區域內的圖片先不作加載, 等到滾動到可視區域後再去加載。
這樣子對於頁面加載性能上會有很大的提高,也提升了用戶體驗。
2.雪碧圖
https://www.jianshu.com/p/4f64f7be8efa
雪碧圖也叫CSS精靈, 是一種CSS圖像合成技術;
通俗來講:將小圖標合併在一塊兒以後的圖片稱做雪碧圖,每一個小圖標的使用須要配合background-position來獲取。
1)將多張圖片合併到一張圖片中,能夠減少圖片的總大小。
2)將多張圖片合併成一張圖片後,下載所有所需的資源,只需一次請求。能夠減少創建鏈接的消耗。
美的面經
連接:https://www.nowcoder.com/discuss/277537?type=all&order=time&pos=&page=1
一、wx.request()使用cookie的話怎麼配置