記錄- 4.26
mysql
176.第二高的薪水
limit n子句表示查詢結(jié)果返回前n條數(shù)據(jù)
offset n表示跳過(guò)x條語(yǔ)句
limit y offset x 分句表示查詢結(jié)果跳過(guò) x 條數(shù)據(jù),讀取前 y 條數(shù)據(jù)
177.第N高的薪水
不能直接用limit N-1是因?yàn)閘imit和offset字段后面只接受正整數(shù)(意味著0、負(fù)數(shù)、小數(shù)都不行)或者單一變量(意味著不能用表達(dá)式),也就是說(shuō)想取一條,limit 2-1、limit 1.1這類的寫法都是報(bào)錯(cuò)的。
窗口函數(shù)

超過(guò)經(jīng)理收入的員工
內(nèi)連接,同一個(gè)select from 兩張表
4.25
mysql
196.刪除重復(fù)的電子郵箱

delete p1
DELETE p1就表示從p1表中刪除滿足WHERE條件的記錄。
2.p1.Id > p2.Id
a. 從表p1取出3條記錄;
b. 拿著第1條記錄去表p2查找滿足WHERE的記錄,代入該條件p1.Email = p2.Email AND p1.Id > p2.Id后,發(fā)現(xiàn)沒(méi)有滿足的,所以不用刪掉記錄1;
c. 記錄2同理;
d. 拿著第3條記錄去表p2查找滿足WHERE的記錄,發(fā)現(xiàn)有一條記錄滿足,所以要從p1刪掉記錄3;
e. 3條記錄遍歷完,刪掉了1條記錄,這個(gè)DELETE也就結(jié)束了。
HTTP
狀態(tài)碼:
200 OK
一切正常204 No Content
與200基本。但響應(yīng)頭沒(méi)有body數(shù)據(jù)206 Partial Content
是應(yīng)用于HTTP 分塊下載或斷點(diǎn)續(xù)傳,表示響應(yīng)返回的body數(shù)據(jù)并不是資源的全部,而是其中的一部分,也是服務(wù)器處理成功的狀態(tài)。301 Moved Permanently
表示永久重定向,說(shuō)明請(qǐng)求的資源已經(jīng)不存在了,需改用新的URL再次訪問(wèn)。302 Foud
表示臨時(shí)重定向,說(shuō)明請(qǐng)求的資源還在,但暫時(shí)需要用另一個(gè)URL來(lái)訪問(wèn)。
301 和302 都會(huì)在響應(yīng)頭使用字段 Location
,致命后續(xù)要跳轉(zhuǎn)的URL,瀏覽器會(huì)重定向新的URL。
304 Not Modified
緩存重定向400 Bad Request
403 Forbidden
表示服務(wù)器禁止訪問(wèn)資源,并不是客戶端的請(qǐng)求出錯(cuò)404 Not Found
500 Internal Server Error
與400同類型。501 Not Implemented
表示客戶端的請(qǐng)求的功能還不支持,類似“即將開業(yè),敬請(qǐng)期待”的意思。502 Bad Gatway
503 Service Unavailabnle
表示服務(wù)器當(dāng)前很忙,暫時(shí)無(wú)法響應(yīng)。
HTTP/1.1
優(yōu)點(diǎn):簡(jiǎn)單、靈活和易于擴(kuò)展、應(yīng)用廣泛和跨平臺(tái)。
缺點(diǎn):無(wú)狀態(tài)、明文傳輸、不安全。
性能:基于【請(qǐng)求-應(yīng)答】 模式。 長(zhǎng)連接、管道網(wǎng)絡(luò)傳輸(未使用)、隊(duì)頭阻塞
HTTPS
HTTP 默認(rèn)端?號(hào)是 80,HTTPS 默認(rèn)端?號(hào)是 443。
HTTPS 解決的問(wèn)題:信息加密(混合加密)、校驗(yàn)機(jī)制(摘要算法)、身份證書(數(shù)字證書)
混合加密:在通信建?前采??對(duì)稱加密的?式交換「會(huì)話秘鑰」,后續(xù)就不再使??對(duì)稱加密。在通信過(guò)程中全部使?對(duì)稱加密的「會(huì)話秘鑰」的?式加密明?數(shù)據(jù)。
兩個(gè)的區(qū)別:
對(duì)稱加密只使??個(gè)密鑰,運(yùn)算速度快,密鑰必須保密,?法做到安全的密鑰交換。
?對(duì)稱加密使?兩個(gè)密鑰:公鑰和私鑰,公鑰可以任意分發(fā)?私鑰保密,解決了密鑰交換問(wèn)題但速度慢。
4.26
HTTP
HTTP /1.1 存在的問(wèn)題:請(qǐng)求/響應(yīng)頭部未經(jīng)壓縮就發(fā)送,浪費(fèi)多;隊(duì)頭阻塞;沒(méi)有請(qǐng)求優(yōu)先級(jí)控制;請(qǐng)求只能從客戶端開始。
HTTP /2 相比HTTP /1.1 的改進(jìn)
頭部壓縮(HPACK算法,在服務(wù)端和服務(wù)端同時(shí)維護(hù)一張頭信息表,發(fā)送時(shí)只發(fā)送索引就可以)
二進(jìn)制格式(分為頭信息幀 和 數(shù)據(jù)幀)
并發(fā)傳輸(一個(gè)TCP有多個(gè)Stream,Stream可以包含1個(gè)或多個(gè)Message,Message ?包含一個(gè)或多個(gè)Frame,這是HTTP/2 的最小單位 ) 通過(guò)Stream ID 來(lái)有序組裝HTTP消息,不同Stream可以并發(fā)發(fā)送。
服務(wù)器主動(dòng)推送資源。(服務(wù)器建立的Stream ID 必須是偶數(shù))?
HTTP /2的缺陷:
隊(duì)頭阻塞,體現(xiàn)在TCP丟包重傳上。因?yàn)門CP是面向字節(jié)流的,TCP必須保證收到的字節(jié)數(shù)據(jù)是完整且連續(xù)的,內(nèi)核才會(huì)把緩沖區(qū)里的數(shù)據(jù)返回給 HTTP 應(yīng)用。
HTTP3 優(yōu)點(diǎn):使用QUIC協(xié)議;無(wú)隊(duì)頭阻塞、更快的連接建立;連接遷移
HTTP /1.1 如何優(yōu)化:
緩存方案避免發(fā)送HTTP 請(qǐng)求
減少HTTP 請(qǐng)求次數(shù): 減少重定向請(qǐng)求次數(shù)(交由代理服務(wù)器完成)、合并請(qǐng)求(合并資源,以大資源請(qǐng)求代替多個(gè)小資源請(qǐng)求,但這樣會(huì)帶來(lái)額外的帶寬消耗)
延遲發(fā)送請(qǐng)求(不重要的后加載)