計算機網(wǎng)絡(luò)是如何工作的
- 著名問題: 在打開一個URL的時候發(fā)生了什么倍宾?
- 主機
主機跟一般的計算機沒什么區(qū)別,每個主機其IP(Internet Protocal)地址就是一個32位的地址(即一個int值)甥雕,由于一個byte為-128到127,所以是255個數(shù),這就是為什么主機的IP每位不能超過255。由于一個int值最大也就是42億棺蛛,所以會有不夠用的情況(IPV4)。所以有了IPV6(增加了IP地址的位數(shù)) - 域名與DNS
DNS(Domain Name Service)即域名服務(wù),訪問一個域名時巩步,會去向DNS查詢對應(yīng)的IP地址和端口旁赊,來進行訪問,當(dāng)我們計算機本地的host文件里面有對應(yīng)的域名配置的時候椅野,就不會去查詢DNS了终畅,而是直接取我們本地配置的IP地址直接訪問 - 端口
端口最多有65536個,HTTPS協(xié)議的默認端口為443竟闪,HTTP的默認為80
- 主機
- TCP協(xié)議
Transport Control Protocal,可以理解為一條雙向的高速公路离福,是一個基于字節(jié)流的一個協(xié)議,當(dāng)我們訪問一個域名時瘫怜,其實就是在自己的機器上的一個端口和遠程主機的一個端口之間開辟了一個雙向的用于傳輸數(shù)據(jù)的高速公路术徊,雙方都可以同時的發(fā)送和接收數(shù)據(jù)。TCP協(xié)議其實只規(guī)定了字節(jié)流在網(wǎng)絡(luò)上如何發(fā)送和接收 - HTTP協(xié)議
TCP協(xié)議之上有HTTP協(xié)議鲸湃,Hyper Text Transport Prototal,超文本傳輸協(xié)議赠涮,超文本意味著不僅可以傳輸文本還可以發(fā)送圖片等等。
使用Java發(fā)起HTTP請求
- 可以使用HTTPClient來進行請求暗挑,相關(guān)文檔
- 可以通過Jsoup來進行html的解析
關(guān)于Cookie
由于HTTP請求是無狀態(tài)的笋除,每一個請求都是獨立的。所以需要狀態(tài)維護的話就需要cookie炸裆。
當(dāng)?shù)谝淮芜M行類似登錄的請求時垃它,登錄成功之后Server端的響應(yīng)頭會有一個Set-Cookie:xxxx,從此之后烹看,之后這個域名所有發(fā)出的請求都會帶有這個字符返回的字符国拇。