一、網(wǎng)絡(luò)編程基本概念
HTTP
-超文本傳輸協(xié)議
。
HTTP
基于請(qǐng)求
和應(yīng)答
,需要的時(shí)候建立連接提供服務(wù),不需要的時(shí)候斷開(kāi)鏈接。
網(wǎng)絡(luò)編程
就是通過(guò)使用套接字來(lái)達(dá)到進(jìn)程間通信目的的技術(shù)。
概念 | 含義 |
---|---|
客戶(hù)端 Client | 移動(dòng)應(yīng)用[iOS、Android] |
服務(wù)器 Server | 為客戶(hù)端提供服務(wù)、提供數(shù)據(jù)、提供資源的機(jī)器 |
請(qǐng)求 Request | 客戶(hù)端向服務(wù)器索取數(shù)據(jù)的一種行為 |
響應(yīng) Response | 服務(wù)器對(duì)客戶(hù)端的請(qǐng)求做出的反應(yīng),一般指返回?cái)?shù)據(jù)給客戶(hù)端 |
客戶(hù)端想要訪(fǎng)問(wèn)數(shù)據(jù),首先要提交一個(gè)請(qǐng)求,用于告知服務(wù)器想要的數(shù)據(jù)。
服務(wù)器接受到請(qǐng)求后,就根據(jù)該請(qǐng)求到數(shù)據(jù)庫(kù)中查找相應(yīng)的資源
無(wú)論服務(wù)器是否成功拿到資源,都會(huì)將結(jié)果返回給客戶(hù)端,這個(gè)過(guò)程就叫響應(yīng)。
補(bǔ)充:
網(wǎng)絡(luò)上所有數(shù)據(jù)都是'二進(jìn)制數(shù)據(jù)',并且以二進(jìn)制流的形式從一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)。
二、URL
基本格式:
協(xié)議://主機(jī)地址:端口號(hào)/路徑
URL
全稱(chēng)Uniform Resource Locator
,即統(tǒng)一資源定位符
,通過(guò)一個(gè)URL可以找到互聯(lián)網(wǎng)上唯一的資源,類(lèi)似于計(jì)算機(jī)上一個(gè)文件的路徑。
上圖URL省略了端口號(hào),實(shí)際上,一個(gè)完整的URL由四個(gè)部分組成,分別是協(xié)議
、IP地址
、端口
、路徑
。
協(xié)議
指定使用的傳輸協(xié)議,就可以告訴瀏覽器如何處理將要打開(kāi)的文件
不同的協(xié)議表示不同的資源查找以及傳輸方式
常見(jiàn)的協(xié)議 | 代表類(lèi)型 | 示例 |
---|---|---|
File | 訪(fǎng)問(wèn)本地計(jì)算機(jī)的資源 | file:///User/xxx/Desktop/file.html |
FTP | 訪(fǎng)問(wèn)共享主機(jī)的文件資源 | ftp://ftp.baidu.com/movies |
HTTP | 超文本傳輸協(xié)議、訪(fǎng)問(wèn)遠(yuǎn)程網(wǎng)絡(luò)資源 | http://www.baidu.com |
HTTPS | 安全的SSL加密傳輸協(xié)議、訪(fǎng)問(wèn)遠(yuǎn)程網(wǎng)絡(luò)資源 | http://www.lxweimin.com/u/21c35a95919e |
Mailto | 訪(fǎng)問(wèn)電子郵件地址 | mailto:null@xxx.cn |
IP地址
IP地址[Hostname]
被用來(lái)給Internet上的每臺(tái)電腦編號(hào),也叫主機(jī)地址。
但是IP地址不容易記憶,如在Safari的地址欄中輸入http://180.97.33.107
,即可打開(kāi)百度首頁(yè),這表示該地址就是百度的IP地址,但很不容易記憶,故而使用域名www.baidu.com
替代以訪(fǎng)問(wèn)網(wǎng)站。
端口
IP地址后面有時(shí)還會(huì)跟上一個(gè)冒號(hào)
和端口號(hào)
,這是為了在一臺(tái)設(shè)備上運(yùn)行多個(gè)程序,人為的設(shè)計(jì)了端口[Port]
的概念,類(lèi)似于公司內(nèi)部的分機(jī)號(hào)碼。每個(gè)網(wǎng)絡(luò)程序,無(wú)論是客戶(hù)端還是服務(wù)器端,都對(duì)應(yīng)一個(gè)或多個(gè)
特定的端口號(hào)。
協(xié)議 | 端口 | 說(shuō)明 | 全拼 |
---|---|---|---|
HTTP | 80 | 超文本傳輸協(xié)議 | Hypertext transfer protocol |
HTTPS | 443 | 超文本傳輸安全協(xié)議 | Hyper Text Transfer Protocol over Secure Socket Layer |
FTP | 20、21、990 | 文本傳輸協(xié)議 | File Transfer Protocol |
POP3 | 110 | 郵局協(xié)議[版本3] | Post Office Protocol - Version3 |
SMTP | 25 | 簡(jiǎn)單郵件傳輸協(xié)議 | Simple Mail Transfer protocol |
telnet | 23 | 遠(yuǎn)程終端協(xié)議 | teletype network |
實(shí)際上,每個(gè)傳輸協(xié)議都有默認(rèn)的端口號(hào)。它是一個(gè)整數(shù),如果輸入時(shí)省略,則會(huì)使用默認(rèn)端口。
如果要采用非標(biāo)準(zhǔn)的端口號(hào),這時(shí)的URL是不能省略端口號(hào)的。
路徑
路徑[Path]
是由0
或者多個(gè)/
符號(hào)隔開(kāi)的字符串,一般用于表示主機(jī)上的一個(gè)目錄或者文件的地址。