1.url是啥
url(uniform resource locator),統一資源定位符,用於定位網際網路上資源,俗稱**。
比如 遵守以下的語法規則:
scheme:
各部分解釋如下:
scheme - 定義網際網路服務的型別。常見的協議有 http、https、ftp、file,其中最常見的型別是 http,而 https 則是進行加密的網路傳輸。
host - 定義域主機(http 的預設主機是 www)
domain - 定義網際網路網域名稱,比如 w3school.com.cn
port - 定義主機上的埠號(http 的預設埠號是 80)
path - 定義伺服器上的路徑(如果省略,則文件必須位於**的根目錄中)。
filename - 定義文件/資源的名稱
2.dns是啥
通過網域名稱找到它的ip位址
3.三次握手
通過dns找到ip位址後去訪問伺服器
這個時候需要tcp三次握手協議(為了避免無效的訪問請求訪問伺服器端造成錯誤的結果)
第一次握手: 客戶端攜帶 syn=1 (syn:同步) 、req=x(佔32位,用來標識從tcp源端向目的端傳送的位元組流,發起方傳送資料時對此進行標記) 傳送給伺服器端,告訴伺服器端已經準備好了可以傳送
第二次握手:伺服器端攜帶 syn=1 、req=y、ack=x+1(確認req上是否有效)給客戶端 告訴客戶端我已經準備好接受
第三次握手:客戶端攜帶req=z、ack=y+1給伺服器端,然後確認連線
4.傳送 http 請求
請求報文由請求行(request line)、請求頭(header)、請求體
5.伺服器端webserver
代表:tomcat、nginx、iss 等
將請求分配到對應mvc的controller層 完成資料互動
6.http響應報文
響應報文由響應行(request line)、響應頭部(header)、響應主體三個部分組成
響應行:告訴瀏覽器這次請求的結果和返回攜帶的資料
1xx:指示資訊–表示請求已接收,繼續處理。
2xx:成功–表示請求已被成功接收、理解、接受。
3xx:重定向–要完成請求必須進行更進一步的操作。
4xx:客戶端錯誤–請求有語法錯誤或請求無法實現。
5xx:伺服器端錯誤–伺服器未能實現合法的請求。
(2) 響應頭部包含響應報文的附加資訊,由 名/值 對組成
(3) 響應主體包含回車符、換行符和響應返回資料,並不是所有響應報文都有響應資料
7.tcp四次揮手
由於tcp連線是雙向互通的,因此,每個方向都必須要單獨進行關閉,這一原則是當一方完成資料傳送任務後,傳送乙個fin來終止這一方向的連線,
收到乙個fin只是意味著這一方向上沒有資料流動了,即不會再收到資料了,但是在這個tcp連線上仍然能夠傳送資料,直到這一方向也傳送了fin。
首先進行關閉的一方將執行主動關閉,而另一方則執行被動關閉,上圖描述的即是如此。
(1)第一次揮手:client傳送乙個fin,用來關閉client到server的資料傳送,client進入fin_wait_1狀態。
(2)第二次揮手:server收到fin後,傳送乙個ack給client,確認序號為收到序號+1(與syn相同,乙個fin占用乙個序號),server進入close_wait狀態。
(3)第三次揮手:server傳送乙個fin,用來關閉server到client的資料傳送,server進入last_ack狀態。
(4)第四次揮手:client收到fin後,client進入time_wait狀態,接著傳送乙個ack給server,確認序號為收到序號+1,server進入closed狀態,完成四次揮手。
一次網上招聘經過
前段時間公司需要招一位軟體工程師。我一直是從事這行的,年紀不小了,老總就把這項工作交給我來做。可能是代溝的原因,身邊一時還沒有這方面的人才,於是就上網招聘。在網上一放招聘廣告,只一天時間,就收到幾十份應聘簡歷 每分簡歷都寫得很好,工作年限都有3 5年 只是學歷,有些是高中,大部分是中專,大專,本科以...
記一次面試經過 映客
1.自己專案組的實現,有些細節,自己都沒有想到,別人提出來,自己都有疑問。尤其是外掛程式框架,自己回來之後,又看了看,感覺更清晰了。回來之後要好好看自己專案裡面的事情,2.演算法 高階面試總是少不了的。以後要去leetcode 多練習。工作四年,學到的就夠應付需求開發了。其他時間,應該用來學習演算法...
android上一次wifi模組除錯經過
在android裝置的開發過程中,經常會碰到更換模組的情況,比如說經常被更換的wifi模組,這裡有可能是硬體部門覺得某個別的模組比現有的模組做得更好所以希望嘗試一下,做做對比實驗 也有可能是公司找到了更便宜的 商,想做cost down,貌似是後者佔的概率更高.把wifi模組更換之後,一般情況下就需...