10月10日 繼續加油!

2022-05-02 12:12:10 字數 3488 閱讀 4190

10月10日

dns解析過程

1、瀏覽器先檢查自身快取中有沒有這個網域名稱對應的ip位址,如果有,解析結束。

2、如果瀏覽器快取中沒有,檢查作業系統快取中有沒有對應的結果。而作業系統也有乙個網域名稱解析的過程。在windows中可通過c盤裡乙個hosts檔案來設定,如果你在這裡指定了乙個網域名稱對應的ip位址,那瀏覽器會首先使用這個ip位址。

3.如果至此還沒有命中網域名稱,請求本地網域名稱伺服器(ldns)來解析這個網域名稱,這台伺服器一般在你的城市的某個角落,距離你不會很遠,並且這台伺服器的效能都很好,一般都會快取網域名稱解析結果,大約80%的網域名稱解析到這裡就完成了。

4. 如果ldns仍然沒有命中,就直接跳到root server 網域名稱伺服器請求解析

5. 根網域名稱伺服器返回給ldns乙個所查詢域的主網域名稱伺服器(gtld server,國際頂尖網域名稱伺服器,如.com .cn .org等)位址

6. 此時ldns再傳送請求給上一步返回的gtld

7. 接受請求的gtld查詢並返回這個網域名稱對應的name server的位址,這個name server就是**註冊的網域名稱伺服器

8. name server根據對映關係表找到目標ip,返回給ldns

9. ldns快取這個網域名稱和對應的ip

10. ldns把解析的結果返回給使用者,使用者根據ttl值快取到本地系統快取中,網域名稱解析過程至此結束

http請求、響應報文的結構

1、請求報文

http方法 url http的版本號——請求行

頭部欄位名:值——請求頭

......

......——請求正文

2、響應報文

http版本號 http狀態碼 狀態碼短語——響應行

頭部欄位名:值——響應頭

——響應正文

在瀏覽器中輸入乙個**執行過程是怎樣的

1、查詢dns,獲取網域名稱對應的ip。

詳見dns的解析過程

2、得到目標伺服器的ip位址及埠號(http 80埠,https 443埠),會呼叫系統庫函式socket,請求乙個tcp流套接字。客戶端向伺服器傳送http請求報文:

(1)應用層:客戶端傳送http請求報文。

(2)傳輸層:(加入源埠、目的埠)建立連線。實際傳送資料之前,三次握手客戶端和伺服器建立起乙個tcp連線。

(3)網路層:(加入ip頭)路由定址。

(4)資料鏈路層:(加入frame頭)傳輸資料。

(5)物理層:物理傳輸bit。

3、伺服器端經過物理層→資料鏈路層→網路層→傳輸層→應用層,解析請求報文,傳送http響應報文。

4、關閉連線,tcp四次揮手。

5、客戶端解析http響應報文,瀏覽器開始顯示html

記憶體溢位和記憶體洩漏

記憶體溢位out of memory:

是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現out of memory;比如申請了乙個integer,但給它存了long才能存下的數,那就是記憶體溢位。

記憶體洩露memory leak:

是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記憶體洩露危害可以忽略,但記憶體洩露堆積後果很嚴重,無論多少記憶體,遲早會被占光。

記憶體洩漏可以分為四類:

常發性記憶體洩漏:

發生記憶體洩漏的**會被多次執行到,每次執行都會導致記憶體洩漏

偶發性記憶體洩漏:

發生記憶體洩漏的**只有在某些特定環境或操作過程下才會發生,

一次性記憶體洩漏:

發生記憶體洩漏的**只會被執行一次,或者由於演算法上的缺陷,導致總會有一塊僅且一塊記憶體發生洩漏。

隱式記憶體洩漏:

程式在執行過程中不停的分配記憶體,但是直到結束的時候才釋放記憶體。

從使用者使用程式的角度來看,記憶體洩漏本身不會產生什麼危害,真正有危害的是記憶體洩漏的堆積,這會最終消耗盡系統所有的記憶體。

記憶體溢位常見原因:

1.記憶體中載入的資料量過於龐大,如一次從資料庫取出過多資料;

2.集合類中有對物件的引用,使用完後未清空,使得jvm不能**;

3.**中存在死迴圈或迴圈產生過多重複的物件實體;

4.使用的第三方軟體中的bug;

5.啟動引數記憶體值設定的過小

解決方案:

1、修改jvm引數,直接增加記憶體

2、檢查錯誤日誌,檢視記憶體溢位錯誤前是否有其他異常錯誤

3、對**進行走查分析,找出可能發生記憶體溢位的位置

linux檢視程序

ps命令:

ps命令查詢與程序相關的pid號:

ps a 顯示現行終端機下的所有程式,包括其他使用者的程式。

ps -a 顯示所有程式。

ps c 列出程式時,顯示每個程式真正的指令名稱,而不包含路徑,引數或常駐服務的標示。

ps -e 此引數的效果和指定"a"引數相同。

ps e 列出程式時,顯示每個程式所使用的環境變數。

ps f 用ascii字元顯示樹狀結構,表達程式間的相互關係。

ps -h 顯示樹狀結構,表示程式間的相互關係。

ps -n 顯示所有的程式,除了執行ps指令終端機下的程式之外。

ps s 採用程式訊號的格式顯示程式狀況。

ps s 列出程式時,包括已中斷的子程式資料。

ps -t《終端機編號》 指定終端機編號,並列出屬於該終端機的程式的狀況。

ps u 以使用者為主的格式來顯示程式狀況。

ps x 顯示所有程式,不以終端機來區分。

最常用的方法是ps aux

基本linux命令

file

作用:file通過探測檔案內容判斷檔案型別,使用許可權是所有使用者。

格式:file [options] 檔名

options]主要引數

-v:在標準輸出後顯示版本資訊,並且退出。

-z:探測壓縮過的檔案型別。

-l:允許符合連線。

mkdir

作用:mkdir命令的作用是建立名稱為dirname的子目錄,與ms dos下的md命令類似,它的使用許可權是所有使用者。

格式:mkdir [options] 目錄名

[options]主要引數

-m, --mode=模式:設定許可權《模式》;,與chmod類似。

-p, --parents:需要時建立上層目錄;如果目錄早已存在,則不當作錯誤。

-v, --verbose:每次建立新目錄都顯示資訊。

--version:顯示版本資訊後離開。

grep

作用:grep命令可以指定檔案中搜尋特定的內容,並將含有這些內容的行標準輸出。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。

格式:grep [options]

[options]主要引數:

-c:只輸出匹配行的計數。

-i:不區分大小寫(只適用於單字元)。

-h:查詢多檔案時不顯示檔名。

-l:查詢多檔案時只輸出包含匹配字元的檔名

-n:顯示匹配行及行號。

-s:不顯示不存在或無匹配文字的錯誤資訊。

-v:顯示不包含匹配文字的所有行。

10月7日 打卡 加油

對軟體測試的理解 定義 分析某個軟體項以發現現存和要求的條件之間的差別,並評價該軟體項的特性。意義 保證軟體質量 貫穿開發的每個階段,在有限的條件下,盡最大可能保證最終交付的產品符合使用者需求。目的 保證軟體質量 確保軟體開發過程方向的正確性。黑盒測試 白盒測試 黑盒測試 基於規格說明,不考慮 實現...

回來了 繼續加油

部落格搬家 經歷了一些變動,來到了一家 同城物流 公司做 新零售 鏈 運氣不錯,遇到非常棒的團隊,有幸 從零到一 經歷了幾個大系統的設計研發,要學習的還很多很多,繼續加油!這一年我遊歷了很多地方,經歷了很多事,部落格也因為懶 因為忙放下了許久。現在畢業了,和女友來到了帝都,莫名其妙地選擇了一家創業公...

10月29日10月30日

蜷縮著,蜷縮著,便是四年。丟去的是光陰,丟不去的是你。接連幾天看了一部網路 很久沒這樣看網路 了,原因是室友在看網路 的網劇 實在無聊就去翻了翻 結果 後面 癮就來了 3w 的txt檔案一天晚上看到了3點 第二天起來 搬工作室 頭也沒洗 任自己邋遢 狂躁 第二天晚上看到了1點 早上起來接著看 終於 ...