網際網路開發的常用概念:
子網掩碼:與ip位址配合使用判斷兩台計算機是否位於同乙個子網路.
dhcp協議: 每乙個子網路中,有一台計算機負責管理本網路的所有ip位址,它叫做「dhcp伺服器」.當新的計算機加入網路,必須向「dhcp伺服器」傳送乙個「dhcp請求」資料報,申請ip位址和相關的網路引數.然後dhcp協議會賦予本機一些引數,如動態ip位址,子網掩碼,閘道器,dns伺服器等.
乙太網標頭: 設定發出方(本機)的mac位址和接收方(dhcp伺服器)的mac位址.
ip標頭:設定發出方(本機)的ip位址和接收方(dhcp伺服器)的ip位址
udp標頭:設定發出方(本機)的埠和接收方(dhcp伺服器)的埠. 這一部分是dhcp協議規定好的,發出方是68埠,接收方是67埠.
所以電腦想要上網,都需要確定這四個引數:本機ip位址, 子網掩碼, 閘道器的ip位址, dns的ip位址。
通俗地說,網路協議就是網路之間溝通、交流的橋梁,只有相同網路協議的計算機才能進行資訊的溝通與交流。這就好比人與人之間交流所使用的各種語言一樣,只有使用相同語言才能正常、順利地進行交流。從專業角度定義,網路協議是計算機在網路中實現通訊時必須遵守的約定,也就是通訊協議。主要是對資訊傳輸的速率、傳輸**、**結構、傳輸控制步驟、出錯控制等作出規定並制定出標準。
統一資源定位——url就是資源的位址,位置.通過乙個url能夠找到網際網路上唯一的乙個資源.
協議:不同的協議代表不同的資源查詢方式,資源傳輸方式.
url中的常見協議:
http:超文字傳輸協議,在網路開發中最常用的協議.訪問的是遠端的網路資源.格式:http://…
ftp:訪問的是共享主機的檔案資源.格式:ftp://
tcp協議:tcp資料報標頭需要設定埠,接收方(baidu)的http埠預設是80,傳送方(本機)的埠是乙個隨機生成的1024~65535之間的整數.
tcp資料報的標頭長度是20位元組.加上嵌入的http資料報,現在總長度是4980位元組.
乙太網協議:
ip資料報嵌入乙太網資料報的資料部分.乙太網資料報的標頭需要設定雙方的mac位址.傳送方為本機的網絡卡mac位址,接收方為閘道器192.168.2.1的mac位址(通過arp協議得到), 乙太網資料報的資料部分,最大長度為1500位元組,而現在的ip資料報長度為5000位元組.因此,ip資料報必須分割成四個包,因為每個包都有自己的ip標頭(20位元組),所以四個包的ip資料報的長度分別為1500 ,1500, 1500,560 位元組.
請求:客戶端發出請求.向伺服器索要資料(運算元據).
響應:伺服器對客戶端的請求做出響應.返回客戶端所需要的資料.
用nsurlrequest 來包裝乙個http請求.可以指定快取策略和超時時間,快取策略的選擇:nsurlrequestcachepolicy
nsurlrequestuseprotocolcachepolicy = 0,
// 預設的快取策略,使用協議定義.
nsurlrequestreloadignoringlocalcachedata = 1,
nsurlrequestreturncachedataelseload = 2,
nsurlrequestreturncachedatadontload = 3,
// 只使用快取資料,如果不存在快取,則請求失敗. 用於沒有網路連線的離線模式
nsurlrequestreloadignoringlocalandremotecachedata = 4,
nsurlrequestreloadignoringcachedata = nsurlrequestreloadignoringlocalcachedata = 1,
nsurlrequestreloadrevalidatingcachedata = 5,
網路快取資料,儲存在sqlite的資料庫中(nshomedirectory()),
用 nsurlconnection 傳送請求.
同步方法:
+ (nsdata *)sendsynchronousrequest
:(nsurlrequest *)request
returningresponse
:(nsurlresponse **)response
error
:(nserror **)error;
非同步方法:
+ (void)sendasynchronousrequest
:(nsurlrequest*) request
queue
:(nsoperationqueue*) queue
completionhandler
:(void (^)(nsurlresponse* response, nsdata* data, nserror* connectionerror)) handler
網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,根據連線啟動的方式以及本地套接字要連線的目標,套接字之間的連線過程可以分為三個步驟:伺服器監聽,客戶端請求,連線確認。
伺服器監聽:是伺服器端套接字並不定位具體的客戶端套接字,而是處於等待連線的狀態,實時監控網路狀態。
客戶端請求:是指由客戶端的套接字提出連線請求,要連線的目標是伺服器端的套接字。為此,客戶端的套接字必須首先描述它要連線的伺服器的套接字,指出伺服器端套接字的位址和埠號,然後就向伺服器端套接字提出連線請求。
連線確認:是指當伺服器端套接字監聽到或者說接收到客戶端套接字的連線請求,它就響應客戶端套接字的請求,建立乙個新的執行緒,把伺服器端套接字的描述發給客戶端,一旦客戶端確認了此描述,連線就建立好了。而伺服器端套接字繼續處於監聽,繼續接收其他客戶端套接字的連線請求。
分步驟建立socket
1.建立客戶端socketsocket(<#int#>, <#int#>, <#int#>);
2.建立伺服器socketstruct sockaddr_in serveraddress;
3.連線到伺服器(socket程式設計) connect(<#int#>, <#const struct sockaddr *#>, <#socklen_t#>);
4.傳送資料給伺服器 send(<#int#>, <#const void *#>, <#size_t#>, <#int#>)
5.接收伺服器返回的資料 recv(<#int#>, <#void *#>, <#size_t#>, <#int#>)
6.關閉 socketclose(socketnumber)
Python開發 網路基礎
tcp與udp的區別 tcp 傳送控制協議 transmission control protocol tcp是傳輸層的乙個協議,基於ip協議,用於傳輸類似http的資訊。tcp協議是面向連線的協議,通過三次握手機制,盡量保證鏈結的可靠性 tcp鏈結需要三次握手,釋放需要四次揮手。udp 使用者資料...
iOS開發網路 HTTP協議
一 url 1.基本介紹 url的全稱是uniform resource locator 統一資源定位符 通過1個url,能找到網際網路上唯一的1個資源 url就是資源的位址 位置,網際網路上的每個資源都有乙個唯一的url 2.url中常見的協議 超文字傳輸協議,訪問的是遠端的網路資源,格式是htt...
iOS開發網路 資料安全
ios開發網路篇 資料安全 一 簡單說明 1.說明 在開發應用的時候,資料的安全性至關重要,而僅僅用post請求提交使用者的隱私資料,還是不能完全解決安全問題。如 可以利用軟體 比如charles 設定 伺服器,攔截檢視手機的請求資料 青花瓷 軟體 因此 提交使用者的隱私資料時,一定不要明文提交,要...