網絡篇
訪問一個完整http請求會經歷哪些問題
-
域名解析
-
發起TCP的3次握手
-
建立TCP連接后發起http請求
-
服務器端響應http請求,瀏覽器得到html代碼
-
瀏覽器解析html代碼,並請求html代碼中的資源
-
瀏覽器對頁面進行渲染呈現給用戶。
具體每一步驟可以參考https://www.cnblogs.com/YeChing/p/6337378.html
https和http請求的區別
-
https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
-
http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
-
http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
-
http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議
按加密來說涉及到了非對稱加密以及證書CA的處理,具體可以自行搜索了解下
https://www.cnblogs.com/wqhwe/p/5407468.html
tcp/ip五層協議有什么,每層的作用
https://mp.weixin.qq.com/s/nwk_3uJd_edRD1h9YxPvzA
可能會問你,http協議位於第幾層,還有就是tcp協議位於第幾層。
http在應用層,負責數據的包裝,tcp位於傳輸層負責數據傳輸
順便可以看看OSI七層協議
http://www.ha97.com/3215.html
http有哪些請求方式,get和post請求有什么區別
-
get重點在從服務器上獲取資源,post重點在向服務器發送數據;
-
get傳輸數據是通過URL請求,以field(字段)= value的形式,置於URL后,並用"?"連接,多個請求數據間用"&"連接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,這個過程用戶是可見的;post傳輸數據通過Http的post機制,將字段與對應值封存在請求實體中發送給服務器,這個過程對用戶是不可見的;
-
Get傳輸的數據量小,因為受URL長度限制,但效率較高,Post可以傳輸大量數據,所以上傳文件時只能用Post方式;
-
post較get安全性較高,get是不安全的,因為URL是可見的,可能會泄露私密信息,如密碼等.
-
get方式只能支持ASCII字符,向服務器傳的中文字符可能會亂碼,post支持標准字符集,可以正確傳遞中文字符。
http請求和http響應包含哪些內容
請求報文包含三部分:
a、請求行:包含請求方法、URI、HTTP版本信息
b、請求首部字段
c、請求內容實體
響應報文包含三部分:
a、狀態行:包含HTTP版本、狀態碼、狀態碼的原因短語
b、響應首部字段
c、響應內容實體
TCP的三次握手過程、四次揮手過程
http://blog.csdn.net/omnispace/article/details/52701752
還有就是問為什么是三次握手,四次揮手
Socket編程了解么,應用在哪些地方
可以把 WebSocket 看成是 HTTP 協議為了支持長連接所打的一個大補丁。WebSocket是HTML5下一種新的協議。它實現了瀏覽器與服務器全雙工通信。最大不同是:
WebSocket是一種雙向通信協議。在建立連接后,WebSocket服務器端和客戶端都能主動向對方發送或接收數據,就像Socket一樣;
WebSocket需要像TCP一樣,先建立連接,連接成功后才能相互通信
一個使用WebSocket應用於視頻的業務思路如下:
使用心跳維護websocket鏈路,探測客戶端端的網紅/主播是否在線
設置負載均衡7層的proxy_read_timeout默認為60s
設置心跳為50s,即可長期保持Websocket不斷開


http請求的狀態碼一般有哪些?3開頭的一般是指什么
1xx:指示信息--表示請求已接收,繼續處理
2xx:成功--表示請求已被成功接收、理解、接受
3xx:重定向--要完成請求必須進行更進一步的操作
4xx:客戶端錯誤--請求有語法錯誤或請求無法實現
5xx:服務器端錯誤--服務器未能實現合法的請求
如果一個網址無法訪問,怎么排查什么原因
ping www.xx.com
或者瀏覽器訪問一般都會有返回結果502等
如果有正在看直播的用戶,反饋太卡,有可能什么原因,怎么定位問題
如果有正在看直播的用戶,反饋太卡,有可能什么原因,怎么定位問題
自己網速慢,測速;或者內存不足,查看本機內存情況;網頁緩存過多,清空;電腦中毒了;瀏覽器版本過低。
WSGI和FastCGI的區別
https://www.biaodianfu.com/cgi-fastcgi-wsgi.html
抓包工具的使用
如charles設置代理抓app的包等,壓力測試,模擬弱網情況等,重定向,更改請求。
http://blog.csdn.net/zhangxiang_1102/article/details/77855548
cookie與session區別
cookie數據存放在客戶的瀏覽器上,session數據放在服務器上;
cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙,考慮到安全應當使用session;
session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能。考慮到減輕服務器性能方面,應當使用COOKIE;
單個cookie在客戶端的限制是3K,就是說一個站點在客戶端存放的COOKIE不能超過3K;
Cookie和Session的方案雖然分別屬於客戶端和服務端,但是服務端的session的實現對客戶端的cookie有依賴關系的,上面我講到服務端執行session機制時候會生成session的id值,這個id值會發送給客戶端,客戶端每次請求都會把這個id值放到http請求的頭部發送給服務端,而這個id值在客戶端會保存下來,保存的容器就是cookie,因此當我們完全禁掉瀏覽器的cookie的時候,服務端的session也會不能正常使用
Tcp與udp區別
http://blog.csdn.net/li_ning_/article/details/52117463
TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發送數據之前不需要建立連接TCP提供可靠的服務。
TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付
TCP面向字節流,實際上是TCP把數據看成一連串無結構的字節流;UDP是面向報文的,UDP沒有擁塞控制,因此網絡出現擁塞不會使源主機的發送速率降低(對實時應用很有用,如IP電話,實時視頻會議等)
每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信
TCP首部開銷20字節;UDP的首部開銷小,只有8個字節
TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道(待續)
