建網(wǎng)站的目的做網(wǎng)站的軟件有哪些
0.計(jì)網(wǎng)和操作系統(tǒng)
熟悉計(jì)算機(jī)網(wǎng)絡(luò)和操作系統(tǒng)知識(shí),包括 TCP/IP、UDP、HTTP、DNS 協(xié)議等。
常見(jiàn)的頁(yè)面置換算法:
- 先進(jìn)先出(FIFO)算法:將最早進(jìn)入內(nèi)存的頁(yè)面替換出去。
- 最近最少使用(LRU)算法:將最近最少被訪問(wèn)的頁(yè)面替換出去。
- 最不常用(LFU)算法:將最不經(jīng)常被訪問(wèn)的頁(yè)面替換出去。
- 時(shí)鐘置換算法:通過(guò)一個(gè)指針按照順時(shí)針?lè)较虮闅v頁(yè)面,當(dāng)需要替換頁(yè)面時(shí),替換指針指向的頁(yè)面,并將該頁(yè)面的訪問(wèn)位清零。
原文鏈接:https://blog.csdn.net/weixin_72256328/article/details/138327484
線程同步方式
互斥鎖 讀寫(xiě)鎖 信號(hào)量 屏障 事件
- 互斥鎖(Mutex):采用互斥對(duì)象機(jī)制,只有擁有互斥對(duì)象的線程才有訪問(wèn)公共資源的權(quán)限。因?yàn)榛コ鈱?duì)象只有一個(gè),所以可以保證公共資源不會(huì)被多個(gè)線程同時(shí)訪問(wèn)。比如 Java 中的
synchronized
關(guān)鍵詞和各種Lock
都是這種機(jī)制。 - 讀寫(xiě)鎖(Read-Write Lock):允許多個(gè)線程同時(shí)讀取共享資源,但只有一個(gè)線程可以對(duì)共享資源進(jìn)行寫(xiě)操作。
- 信號(hào)量(Semaphore):它允許同一時(shí)刻多個(gè)線程訪問(wèn)同一資源,但是需要控制同一時(shí)刻訪問(wèn)此資源的最大線程數(shù)量。
- 屏障(Barrier):屏障是一種同步原語(yǔ),用于等待多個(gè)線程到達(dá)某個(gè)點(diǎn)再一起繼續(xù)執(zhí)行。當(dāng)一個(gè)線程到達(dá)屏障時(shí),它會(huì)停止執(zhí)行并等待其他線程到達(dá)屏障,直到所有線程都到達(dá)屏障后,它們才會(huì)一起繼續(xù)執(zhí)行。比如 Java 中的
CyclicBarrier
是這種機(jī)制。 - 事件(Event) :Wait/Notify:通過(guò)通知操作的方式來(lái)保持多線程同步,還可以方便的實(shí)現(xiàn)多線程優(yōu)先級(jí)的比較操作。
進(jìn)程間通信方式
管道 消息隊(duì)列 共享內(nèi)存 信號(hào) 套接字
1.管道:包括無(wú)名管道和命名管道,無(wú)名管道半雙工,只能用于具有親緣關(guān)系的進(jìn)程直接的通信(父子進(jìn)程或者兄弟進(jìn)程),可以看作一種特殊的文件;命名管道可以允許無(wú)親緣關(guān)系進(jìn)程間的通信。
2.消息隊(duì)列:消息的鏈接表,放在內(nèi)核中。消息隊(duì)列獨(dú)立于發(fā)送與接收進(jìn)程,進(jìn)程終止時(shí),消息隊(duì)列及其內(nèi)容并不會(huì)被刪除;消息隊(duì)列可以實(shí)現(xiàn)消息的隨機(jī)查詢(xún),可以按照消息的類(lèi)型讀取。
3.信號(hào)量semaphore(PV操作):是一個(gè)計(jì)數(shù)器,可以用來(lái)控制多個(gè)進(jìn)程對(duì)共享資源的訪問(wèn)。信號(hào)量用于實(shí)現(xiàn)進(jìn)程間的互斥與同步。
4.信號(hào):用于通知接收進(jìn)程某個(gè)事件的發(fā)生。
5.內(nèi)存共享:使多個(gè)進(jìn)程訪問(wèn)同一塊內(nèi)存空間。
6.套接字socket:用于不同主機(jī)直接的通信。
進(jìn)程的調(diào)度策略
操作系統(tǒng)使用多種進(jìn)程調(diào)度策略來(lái)管理進(jìn)程的執(zhí)行順序:
- 先來(lái)先服務(wù)(FCFS):按照進(jìn)程到達(dá)的順序調(diào)度,簡(jiǎn)單但可能導(dǎo)致長(zhǎng)時(shí)間等待的“饑餓”問(wèn)題。
- 短作業(yè)優(yōu)先(SJF):優(yōu)先調(diào)度執(zhí)行時(shí)間短的任務(wù),減少平均等待時(shí)間,但需要準(zhǔn)確預(yù)測(cè)任務(wù)長(zhǎng)度。
- 優(yōu)先級(jí)調(diào)度:根據(jù)進(jìn)程的優(yōu)先級(jí)選擇執(zhí)行順序,優(yōu)先級(jí)高的進(jìn)程先執(zhí)行??梢允菗屨际交蚍菗屨际?。
- 時(shí)間片輪轉(zhuǎn)(RR):每個(gè)進(jìn)程分配一個(gè)固定的時(shí)間片,輪流執(zhí)行,適用于時(shí)間共享系統(tǒng),保證公平。
- 多級(jí)反饋隊(duì)列(MLFQ):根據(jù)進(jìn)程的執(zhí)行行為動(dòng)態(tài)調(diào)整優(yōu)先級(jí),短任務(wù)優(yōu)先執(zhí)行,長(zhǎng)任務(wù)逐漸降低優(yōu)先級(jí)。
PV操作怎么確保別的進(jìn)程不會(huì)修改
- P操作(等待操作):當(dāng)一個(gè)進(jìn)程執(zhí)行P操作時(shí),它會(huì)檢查信號(hào)量的值,如果信號(hào)量值大于0,則將其減1并繼續(xù)執(zhí)行;如果等于0,則進(jìn)程會(huì)被阻塞,等待信號(hào)量變?yōu)檎怠?/li>
- V操作(釋放操作):V操作則是將信號(hào)量的值加1,并喚醒等待隊(duì)列中的一個(gè)阻塞進(jìn)程。
通過(guò)原子操作保證信號(hào)量的修改不可被其他進(jìn)程打斷,操作系統(tǒng)中的信號(hào)量機(jī)制能夠確保在多進(jìn)程或多線程環(huán)境中同步共享資源。
0.計(jì)算機(jī)網(wǎng)絡(luò)
1.鍵入網(wǎng)址
2.TCP/IP OSI模型 關(guān)系 各個(gè)層常見(jiàn)的協(xié)議
3.DNS解析流程(重點(diǎn)!!!)
4.TCP 三次握手 四次揮手(重點(diǎn)!!!)
5.TCP如何保證可靠性?(重點(diǎn)!!!)
5.TCP和UDP的區(qū)別?(重點(diǎn)!!!)
6.HTTP狀態(tài)碼? Get Post方法區(qū)別?
7.HTTP和HTTPS區(qū)別?(重點(diǎn)!!!)
8.HTTPS加密過(guò)程?(重點(diǎn)!!!)
1.HTTP鍵入網(wǎng)址過(guò)程
- 在瀏覽器中輸入指定網(wǎng)頁(yè)的 URL。
- 瀏覽器通過(guò) DNS 協(xié)議,獲取域名對(duì)應(yīng)的 IP 地址。
- 瀏覽器根據(jù) IP 地址和端口號(hào),向目標(biāo)服務(wù)器發(fā)起一個(gè) TCP 連接請(qǐng)求。
- 瀏覽器在 TCP 連接上,向服務(wù)器發(fā)送一個(gè) HTTP 請(qǐng)求報(bào)文,請(qǐng)求獲取網(wǎng)頁(yè)的內(nèi)容。
- 服務(wù)器收到 HTTP 請(qǐng)求報(bào)文后,處理請(qǐng)求,并返回 HTTP 響應(yīng)報(bào)文給瀏覽器。
- 瀏覽器收到 HTTP 響應(yīng)報(bào)文后,解析響應(yīng)體中的 HTML 代碼,渲染網(wǎng)頁(yè)的結(jié)構(gòu)和樣式,同時(shí)根據(jù) HTML 中的其他資源的 URL(如圖片、CSS、JS 等),再次發(fā)起 HTTP 請(qǐng)求,獲取這些資源的內(nèi)容,直到網(wǎng)頁(yè)完全加載顯示。
- 瀏覽器在不需要和服務(wù)器通信時(shí),可以主動(dòng)關(guān)閉 TCP 連接,或者等待服務(wù)器的關(guān)閉請(qǐng)求。
2.各層常見(jiàn)協(xié)議
應(yīng)用層:HTTP DNS WebSocket SSH FTP Telnet SMTP POP3/IMAP RTP
傳輸層:TCP UDP
網(wǎng)絡(luò)層:IP ARP ICMP NAT OSPF RIP BGP
3.DNS解析流程(重點(diǎn)!!!)
www.server.com.
瀏覽器緩存 操作系統(tǒng)緩存 hosts文件 本地dns服務(wù)器 根域dns服務(wù)器 頂級(jí)dns服務(wù)器 權(quán)威dns服務(wù)器
1.瀏覽器緩存:檢查瀏覽器是否已經(jīng)緩存了域名的IP地址。
2.操作系統(tǒng)緩存:如果瀏覽器緩存沒(méi)有,操作系統(tǒng)檢查其緩存。
3.hosts
文件:如果操作系統(tǒng)緩存也沒(méi)有,查看hosts
文件。
4.本地DNS服務(wù)器:如果以上都沒(méi)有,請(qǐng)求本地DNS服務(wù)器。
5.根域DNS服務(wù)器:本地DNS服務(wù)器向根域DNS服務(wù)器請(qǐng)求。
6.頂級(jí)DNS服務(wù)器:根域DNS服務(wù)器指向頂級(jí)DNS服務(wù)器。
7.權(quán)威DNS服務(wù)器:頂級(jí)DNS服務(wù)器指向權(quán)威DNS服務(wù)器,獲取域名的實(shí)際IP地址。
返回結(jié)果:權(quán)威DNS服務(wù)器將IP地址返回給本地DNS服務(wù)器,然后由本地DNS服務(wù)器返回給操作系統(tǒng),最終由操作系統(tǒng)返回給瀏覽器。
4.TCP 三次握手 四次揮手(重點(diǎn)!!!)
一:TCP三次握手 (Three-Way Handshake)過(guò)程
SYN:客戶端發(fā)送一個(gè)SYN(同步序列編號(hào))報(bào)文到服務(wù)器,并進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器確認(rèn)。
SYN-ACK:服務(wù)器收到SYN報(bào)文后,發(fā)送一個(gè)SYN+ACK(確認(rèn))報(bào)文給客戶端,并進(jìn)入SYN_RCVD狀態(tài)。
ACK:客戶端收到服務(wù)器的SYN+ACK報(bào)文后,會(huì)發(fā)送一個(gè)ACK報(bào)文給服務(wù)器,然后雙方進(jìn)入ESTABLISHED(已建立連接)狀態(tài),完成三次握手,開(kāi)始數(shù)據(jù)傳輸。
目的
TCP三次握手的主要目的是建立一個(gè)可靠的會(huì)話連接,確保雙方通信端口的正確性,以及同步雙方的序列號(hào)和確認(rèn)號(hào),為數(shù)據(jù)傳輸做好準(zhǔn)備。
二:TCP四次揮手 (Four-Way Handshake)過(guò)程
FIN:當(dāng)通信的一方完成所有數(shù)據(jù)傳輸后,會(huì)發(fā)送一個(gè)FIN(結(jié)束)報(bào)文來(lái)關(guān)閉連接。
ACK:另一方收到FIN報(bào)文后,會(huì)發(fā)送一個(gè)ACK報(bào)文作為應(yīng)答,并將接收到的序列號(hào)加1。
FIN:在發(fā)送了ACK報(bào)文后,該方也可以發(fā)送一個(gè)FIN報(bào)文請(qǐng)求關(guān)閉連接。
ACK:最初發(fā)送FIN報(bào)文的一方收到對(duì)方的FIN報(bào)文后,發(fā)送一個(gè)ACK報(bào)文作為回應(yīng),然后等待足夠時(shí)間以確保對(duì)方收到這個(gè)ACK報(bào)文。
目的
四次揮手的目的是允許雙方均能清楚地關(guān)閉已建立的TCP連接。由于TCP是全雙工的,因此每個(gè)方向必須單獨(dú)進(jìn)行關(guān)閉。
5.TCP如何保證可靠性?(重點(diǎn)!!!)
1.建立連接:通過(guò)三次握手建立連接,保證雙方都有通信的能力
2.序號(hào)機(jī)制:保證數(shù)據(jù)是按序、完整到達(dá)
3.合理分片:tcp會(huì)按最大傳輸單元(MTU)合理分片,接收方會(huì)緩存未按序到達(dá)的數(shù)據(jù),重新
排序后交給應(yīng)用層。
4.數(shù)據(jù)校驗(yàn):TCP報(bào)文頭有校驗(yàn)和,用于校驗(yàn)報(bào)文是否損壞
5.超時(shí)重傳:如果發(fā)送一直收不到應(yīng)答,可能是發(fā)送數(shù)據(jù)丟失,也可能是應(yīng)答丟失,發(fā)送方再等待一段時(shí)間之后都會(huì)進(jìn)行重傳。
6.流量控制:當(dāng)接收方來(lái)不及處理發(fā)送方的數(shù)據(jù),能通過(guò)滑動(dòng)窗口,提示發(fā)送方降低發(fā)送的速率,防止包丟失。
7.擁塞控制:網(wǎng)絡(luò)層擁堵造成的擁塞,包括慢啟動(dòng),擁塞避免,快速重傳三種機(jī)制
滑動(dòng)窗口和擁塞控制(細(xì)節(jié))
1.TCP滑動(dòng)窗口是一種流量控制機(jī)制,用于調(diào)節(jié)發(fā)送方可以發(fā)送而不必等待確認(rèn)的數(shù)據(jù)量。它的關(guān)鍵特點(diǎn)是:
- 發(fā)送窗口:發(fā)送方可以發(fā)送不超過(guò)滑動(dòng)窗口大小的數(shù)據(jù),而不必等待每個(gè)數(shù)據(jù)包的確認(rèn)。
- 接收窗口:接收方告知發(fā)送方它可以接受的最大數(shù)據(jù)量,從而決定窗口的大小。
- 窗口滑動(dòng):當(dāng)發(fā)送方收到確認(rèn)(ACK)后,窗口向前滑動(dòng),允許發(fā)送更多的數(shù)據(jù)包。
滑動(dòng)窗口提高了傳輸效率,通過(guò)動(dòng)態(tài)調(diào)整發(fā)送速率,避免了網(wǎng)絡(luò)擁塞。
2.TCP擁塞控制是用于避免網(wǎng)絡(luò)擁塞的機(jī)制,主要包括以下四個(gè)階段:
- 慢啟動(dòng)(Slow Start):初始發(fā)送速率較低,通過(guò)指數(shù)增長(zhǎng)逐步增加擁塞窗口。
- 擁塞避免(Congestion Avoidance):當(dāng)網(wǎng)絡(luò)負(fù)載增加時(shí),發(fā)送窗口線性增長(zhǎng),避免過(guò)快增加流量。
- 快速重傳(Fast Retransmit):在檢測(cè)到重復(fù)ACK時(shí),立即重傳丟失的數(shù)據(jù)包,而不必等待超時(shí)。
- 快速恢復(fù)(Fast Recovery):當(dāng)網(wǎng)絡(luò)擁塞發(fā)生時(shí),減少窗口,但不從慢啟動(dòng)重新開(kāi)始。
3.擁塞控制在什么場(chǎng)景下效果不好?
TCP擁塞控制在高帶寬-延遲產(chǎn)品(BDP)的網(wǎng)絡(luò)中效果不好。例如,在高速、長(zhǎng)距離的網(wǎng)絡(luò)(如衛(wèi)星網(wǎng)絡(luò))中,擁塞窗口的增長(zhǎng)速度較慢,導(dǎo)致帶寬利用率低。此外,移動(dòng)網(wǎng)絡(luò)和無(wú)線網(wǎng)絡(luò)中,由于丟包率較高,TCP可能會(huì)錯(cuò)誤地將丟包視為網(wǎng)絡(luò)擁塞,從而過(guò)度降低傳輸速率。
6.TCP和UDP的區(qū)別?(重點(diǎn)!!!)
**區(qū)別:**連接 服務(wù)對(duì)象 可靠性 傳輸方式 分片不同 首部開(kāi)銷(xiāo)
1. 連接
- TCP 是面向連接的傳輸層協(xié)議,傳輸數(shù)據(jù)前先要建立連接。
- UDP 是不需要連接,即刻傳輸數(shù)據(jù)。
2. 服務(wù)對(duì)象
- TCP 是一對(duì)一的兩點(diǎn)服務(wù),即一條連接只有兩個(gè)端點(diǎn)。
- UDP 支持一對(duì)一、一對(duì)多、多對(duì)多的交互通信
3. 可靠性
- TCP 是可靠交付數(shù)據(jù)的,數(shù)據(jù)可以無(wú)差錯(cuò)、不丟失、不重復(fù)、按序到達(dá)。
- UDP 是盡最大努力交付,不保證可靠交付數(shù)據(jù)。但是我們可以基于 UDP 傳輸協(xié)議實(shí)現(xiàn)一個(gè)可靠的傳輸協(xié)議,比如 QUIC 協(xié)議,具體可以參見(jiàn)這篇文章:如何基于 UDP 協(xié)議實(shí)現(xiàn)可靠傳輸?(opens new window)
4. 擁塞控制、流量控制
- TCP 有擁塞控制和流量控制機(jī)制,保證數(shù)據(jù)傳輸?shù)陌踩浴?/li>
- UDP 則沒(méi)有,即使網(wǎng)絡(luò)非常擁堵了,也不會(huì)影響 UDP 的發(fā)送速率。
5. 首部開(kāi)銷(xiāo)
- TCP 首部長(zhǎng)度較長(zhǎng),會(huì)有一定的開(kāi)銷(xiāo),首部在沒(méi)有使用「選項(xiàng)」字段時(shí)是
20
個(gè)字節(jié),如果使用了「選項(xiàng)」字段則會(huì)變長(zhǎng)的。 - UDP 首部只有 8 個(gè)字節(jié),并且是固定不變的,開(kāi)銷(xiāo)較小。
6. 傳輸方式
- TCP 是流式傳輸,沒(méi)有邊界,但保證順序和可靠。
- UDP 是一個(gè)包一個(gè)包的發(fā)送,是有邊界的,但可能會(huì)丟包和亂序。
7. 分片不同
- TCP 的數(shù)據(jù)大小如果大于 MSS 大小,則會(huì)在傳輸層進(jìn)行分片,目標(biāo)主機(jī)收到后,也同樣在傳輸層組裝 TCP 數(shù)據(jù)包,如果中途丟失了一個(gè)分片,只需要傳輸丟失的這個(gè)分片。
- UDP 的數(shù)據(jù)大小如果大于 MTU 大小,則會(huì)在 IP 層進(jìn)行分片,目標(biāo)主機(jī)收到后,在 IP 層組裝完數(shù)據(jù),接著再傳給傳輸層。
TCP 和 UDP 應(yīng)用場(chǎng)景:
由于 TCP 是面向連接,能保證數(shù)據(jù)的可靠性交付,因此經(jīng)常用于:
FTP
文件傳輸;- HTTP / HTTPS;
由于 UDP 面向無(wú)連接,它可以隨時(shí)發(fā)送數(shù)據(jù),再加上 UDP 本身的處理既簡(jiǎn)單又高效,因此經(jīng)常用于:
- 包總量較少的通信,如
DNS
、SNMP
等; - 視頻、音頻等多媒體通信;
- 廣播通信;
7.HTTP狀態(tài)碼?
狀態(tài)碼?
1XX:
2XX: 成功響應(yīng)
200:查詢(xún)請(qǐng)求被成功處理。
201:POST 添加請(qǐng)求被成功處理。
202:服務(wù)端已經(jīng)接收到了請(qǐng)求,但是還未處理。
204:服務(wù)端已經(jīng)成功處理了請(qǐng)求,但是沒(méi)有返回任何內(nèi)容。
3XX: 重定向
301:資源被永久重定向了。比如你的網(wǎng)站的網(wǎng)址更換了。
302::資源被臨時(shí)重定向了。
4XX: 客戶端錯(cuò)誤
400:發(fā)送的 HTTP 請(qǐng)求存在問(wèn)題。比如請(qǐng)求參數(shù)不合法、請(qǐng)求方法錯(cuò)誤。
401:未認(rèn)證卻請(qǐng)求需要認(rèn)證之后才能訪問(wèn)的資源。
403:直接拒絕 HTTP 請(qǐng)求,不處理。一般用來(lái)針對(duì)非法請(qǐng)求。
404:請(qǐng)求的資源未在服務(wù)端找到。
405:請(qǐng)求方式和處理請(qǐng)求方式不一致。
409:表示請(qǐng)求的資源與服務(wù)端當(dāng)前的狀態(tài)存在沖突,請(qǐng)求無(wú)法被處理。
5XX: 服務(wù)的錯(cuò)誤
500:服務(wù)端出問(wèn)題了(通常是服務(wù)端出 Bug 了)。
502:我們的網(wǎng)關(guān)將請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)端,但是服務(wù)端返回的卻是一個(gè)錯(cuò)誤的響應(yīng)。
8.Get Post方法區(qū)別?
GET和POST的區(qū)別? 參數(shù)位置 數(shù)據(jù)長(zhǎng)度限制 安全性 冪等性和緩存
前提是GET和POST都要滿足RFC規(guī)范。
雖然GET和POST都是使用HTTP協(xié)議傳輸數(shù)據(jù),但它們?cè)谝恍┓矫嬗忻黠@的區(qū)別:
- 參數(shù)位置
GET請(qǐng)求的參數(shù)附加在URL的末尾,形式為:http://example.com/path?param1=value1¶m2=value2
? POST請(qǐng)求的參數(shù)包含在請(qǐng)求的正文中,不會(huì)顯示在URL中。
- 數(shù)據(jù)長(zhǎng)度限制
GET請(qǐng)求的參數(shù)附加在URL后面,受限于URL的長(zhǎng)度限制,一般由瀏覽器限制,不同瀏覽器可能有不同的限制,例如IE限制為2083字節(jié)。
? POST請(qǐng)求的參數(shù)在請(qǐng)求的正文中,沒(méi)有明確的長(zhǎng)度限制,一般受到服務(wù)器端的配置限制。
- 安全性
GET請(qǐng)求的參數(shù)會(huì)顯示在URL中,因此對(duì)于敏感信息不宜使用GET請(qǐng)求,因?yàn)槊舾行畔⒖赡軙?huì)被瀏覽器保存、歷史記錄或被其他人看到。
? POST請(qǐng)求的參數(shù)在請(qǐng)求的正文中,相對(duì)來(lái)說(shuō)更加安全,但仍然不是絕對(duì)安全,因?yàn)镠TTP是明文傳輸?shù)?#xff0c;只有使用HTTPS才能加密傳 輸數(shù)據(jù)。
-
緩存與歷史記錄
GET請(qǐng)求會(huì)被瀏覽器主動(dòng)緩存,而POST請(qǐng)求不會(huì)被緩存,除非手動(dòng)設(shè)置。因?yàn)镚ET請(qǐng)求的參數(shù)附加在URL后面,瀏覽器會(huì)將URL作為緩存的標(biāo)識(shí)。 -
冪等性
GET請(qǐng)求是冪等的,多次執(zhí)行相同的GET請(qǐng)求,服務(wù)器的狀態(tài)不會(huì)發(fā)生變化。
? POST請(qǐng)求不是冪等的,多次執(zhí)行相同的POST請(qǐng)求可能會(huì)產(chǎn)生不同的結(jié)果,因?yàn)榭赡軙?huì)導(dǎo)致服務(wù)器狀態(tài)的變化。
GET和POST的使用場(chǎng)景?
GET請(qǐng)求主要用于獲取數(shù)據(jù),因?yàn)樗莾绲鹊?、可緩存的。常?jiàn)的使用場(chǎng)景包括:
搜索引擎的搜索請(qǐng)求
獲取網(wǎng)頁(yè)內(nèi)容
獲取資源文件等
POST請(qǐng)求主要用于向服務(wù)器提交數(shù)據(jù),因?yàn)樗赡軙?huì)導(dǎo)致?tīng)顟B(tài)變化或產(chǎn)生副作用。常見(jiàn)的使用場(chǎng)景包括:
提交表單數(shù)據(jù)
上傳文件
發(fā)表評(píng)論等
在實(shí)際應(yīng)用中,要根據(jù)具體的需求選擇GET或POST方法,合理地使用它們可以提升應(yīng)用的性能和安全性。
9.HTTP和HTTPS區(qū)別?(重點(diǎn)!!!)
- HTTP 是超文本傳輸協(xié)議,信息是明文傳輸,存在安全風(fēng)險(xiǎn)的問(wèn)題。HTTPS 則解決 HTTP 不安全的缺陷,在 TCP 和 HTTP 網(wǎng)絡(luò)層之間加入了 SSL/TLS 安全協(xié)議,使得報(bào)文能夠加密傳輸。
- HTTP 連接建立相對(duì)簡(jiǎn)單, TCP 三次握手之后便可進(jìn)行 HTTP 的報(bào)文傳輸。而 HTTPS 在 TCP 三次握手之后,還需進(jìn)行 SSL/TLS 的握手過(guò)程,才可進(jìn)入加密報(bào)文傳輸。
- 兩者的默認(rèn)端口不一樣,HTTP 默認(rèn)端口號(hào)是 80,HTTPS 默認(rèn)端口號(hào)是 443。
- HTTPS 協(xié)議需要向 CA(證書(shū)權(quán)威機(jī)構(gòu))申請(qǐng)數(shù)字證書(shū),來(lái)保證服務(wù)器的身份是可信的。
10.HTTPS加密過(guò)程?(重點(diǎn)!!!)
HTTP 由于是明文傳輸,所以安全上存在以下三個(gè)風(fēng)險(xiǎn):
-
竊聽(tīng)風(fēng)險(xiǎn),比如通信鏈路上可以獲取通信內(nèi)容,用戶號(hào)容易沒(méi)。
解決方法:混合加密。非對(duì)稱(chēng)加密(建立連接前使用1次) + 對(duì)稱(chēng)加密(建立連接后一直用)
-
篡改風(fēng)險(xiǎn),比如強(qiáng)制植入垃圾廣告,視覺(jué)污染,用戶眼容易瞎。
解決方法:摘要算法(哈希函數(shù)) + 數(shù)字簽名(給hash值加密,防止被替換。私鑰簽名,公鑰驗(yàn)證)
-
冒充風(fēng)險(xiǎn),比如冒充淘寶網(wǎng)站,用戶錢(qián)容易沒(méi)。
解決方法:服務(wù)器注冊(cè)公鑰到CA;CA用私鑰對(duì)服務(wù)器公鑰進(jìn)行簽名,并頒發(fā)數(shù)字證書(shū);服務(wù)器將證書(shū)和公鑰傳給客戶端;客戶端用CA的公鑰驗(yàn)證服務(wù)器的證書(shū);合法,就用服務(wù)器公鑰加密數(shù)據(jù)然后發(fā)送給服務(wù)器;服務(wù)器私鑰解密,接收客戶端發(fā)送的信息;
11.IPv4和IPv6的區(qū)別?
ipv6相比于ipv4提供更大的地址空間和更好的自動(dòng)配置及安全性
- 地址長(zhǎng)度:
- IPv4:32位地址,約43億個(gè)地址(例如:192.168.0.1)。
- IPv6:128位地址,地址數(shù)量極大(例如:2001:0db8::1)。
- 地址表示:
- IPv4:點(diǎn)分十進(jìn)制表示(如:192.168.0.1)。
- IPv6:冒號(hào)十六進(jìn)制表示(如:2001:0db8::1)。
- 地址空間:
- IPv4:地址數(shù)量有限,面臨耗盡問(wèn)題。
- IPv6:地址數(shù)量巨大,能夠滿足未來(lái)需求。
- 配置:
- IPv4:通常需要手動(dòng)配置或通過(guò)DHCP分配。
- IPv6:支持自動(dòng)配置(SLAAC)。
- 安全性:
- IPv4:沒(méi)有默認(rèn)的安全機(jī)制。
- IPv6:默認(rèn)支持IPSec,更加注重安全。