摘要:網(wǎng)絡(luò)之間互連的協(xié)議超文本傳輸協(xié)議是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。使用什么協(xié)議,來說明這兩個問題。
HTTP協(xié)議介紹
重要性:
是使用webservice,還是rest做大型架構(gòu),都離不開對HTTP協(xié)議的認(rèn)識
簡化的說:
webservice = http協(xié)議 + XML
Rest = http協(xié)議 + JSON
各種API,也是通過http + XML/JSON來實現(xiàn)
做采集,需要對http協(xié)議有所了解,以及ajax,對http協(xié)議理解.
協(xié)議計算機中的協(xié)議和現(xiàn)實中的協(xié)議是一樣的,一式雙份/多份
雙方/多方都遵從共同的一個規(guī)范,這個規(guī)范稱之為協(xié)議.
ftp, https, http, stmp, pop, tcp/ip 協(xié)議...
URI/URL/URN
// URL: 統(tǒng)一資源定位符 https://v.sf.com:80/index.html?name=user#bbs // URN:統(tǒng)一資源名稱 ste.org/img.png
URI :統(tǒng)一資源標(biāo)識符
URN和URL都屬于URI.
URI能成為URL的當(dāng)然就是那個“訪問機制”,“網(wǎng)絡(luò)位置”
URN是唯一標(biāo)識的一部分,就是一個特殊的名字
https默認(rèn)尋找服務(wù)器443端口
名詞解釋:
OSI:開放系統(tǒng)互連參考模型(Open System Interconnnect 簡稱OSI)
TCP:TCP (Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的,可靠的,基于字節(jié)流的傳輸層通信協(xié)議。
IP:IP(Internet Protocol)網(wǎng)絡(luò)之間互連的協(xié)議
HTTP:HTTP(Hyper Text Transfer Protocol超文本傳輸協(xié)議)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。
HTTPS:HTTPS (Hyper Text Transfer Protocol over Secure Socket Layer)是以安全為目標(biāo)的HTTP通道,簡單講師HTTP的安全版
五層網(wǎng)絡(luò)協(xié)議應(yīng)用層(http/https/websocket/ftp) => 定義:文本傳輸協(xié)議 ↓ 傳輸層(tcp/udp) => 定義:端口 ↓ 網(wǎng)絡(luò)層(IP) => 定義:IP ↓ 鏈路層(mac&數(shù)據(jù)包) => 定義:數(shù)據(jù)包,MAC地址 ↓ 實體層(光纜/電纜/交換機/路由/終端...) => 定義:物理
網(wǎng)絡(luò)協(xié)議解釋:
解釋1:分別代表TCP協(xié)議和IP協(xié)議
解釋2:如果按照網(wǎng)絡(luò)五層架構(gòu),TCP/IP代表除了應(yīng)用層其它層所有協(xié)議簇的統(tǒng)稱
TCP/IP三次握手:
標(biāo)有syn的數(shù)據(jù)包 -----------------> 標(biāo)有syn/ack的數(shù)據(jù)包 client <----------------- server 標(biāo)有ack的數(shù)據(jù)包 ----------------->
Keep-Alive
HTTP協(xié)議初期每次連接結(jié)束后都會斷開TCP鏈接,之后HEADER的connection字段定義Keep-Alive(HTTP1.1 默認(rèn) 持久連接),代表如果連接雙方如果沒有一方主動斷開都不會斷開TCP連接,減少了每次建立HTTP連接時進行TCP的連接的消耗.
當(dāng)打開一個頁面之后時.
原始狀態(tài) : 客戶端與服務(wù)器之間沒有關(guān)系
request 請求
客戶端 --> 服務(wù)器 (請求連接)
連接:就是網(wǎng)絡(luò)上的虛擬電路
response 響應(yīng)
客戶端 <-- 服務(wù)器 (沿著連接,返回響應(yīng)信息)
客戶端,收到響應(yīng)代碼(HTML代碼,解析文字,圖片)
斷開連接
瀏覽器能發(fā)送HTTP協(xié)議,HTTP協(xié)議一定要瀏覽器來發(fā)送么?
不是,HTTP是一種協(xié)議,只要滿足,什么工具都可以發(fā)送.
可以使用 telnet host port
telnet作用:遠(yuǎn)程控制web服務(wù)器
回顯功能:
ctrl+]輸入之后,再回車
請求
請求行
請求頭信息
請求主體信息 (可以沒有)
頭信息結(jié)束后和主體信息之間要空行一行
請求行
請求方法
請求方法:GET,POST,PUT,HEAD,DELTE,TRACE,OPTIONS
請求路徑
所用的協(xié)議: 目前一般是HTTP/1.1 0.9 和 1.0 基本不使用
使用telnet來完成HTTP協(xié)議的POST請求
POST /github/http/telnet_post.php HTTP/1.1 Host: www.muchai.com Content-type: application/x-www-form-urlencoded Content-length: 33
響應(yīng)
響應(yīng)行
相應(yīng)頭信息
相應(yīng)主體信息
響應(yīng)行
協(xié)議
狀態(tài)碼
狀態(tài)文字
方法與狀態(tài)碼 請求方法請求方法有哪些?
GET, POST, HEAD, PUT, TRACE, DELETE, OPTIONS
HEAD和GET基本一致,只是不返回內(nèi)容.
比如:只是確認(rèn)一個內(nèi)容(照片)是否還存在,不需要返回具體的內(nèi)容。
PUT: 往服務(wù)器資源傳輸內(nèi)容
TRACE:使用代理上網(wǎng). 比如用代理訪問www.sf.gg看下代理是否修改HTTP請求,可以使用TRACE來測試一下,sf.gg的服務(wù)器就會把最后收到的請求返回.
OPTIONS: 返回服務(wù)器可用的請求方法.
注意:這些請求方法雖然是HTTP協(xié)議中規(guī)定的,但WEB SERVER未必允許或支持這些方法.
get: 獲取資源,url傳參,大小2KB
post: 傳輸資源,http body, 大小默認(rèn)8M,1000個input variable
put: 傳輸資源,http body,資源更新
delete: 刪除資源
patch: 傳輸資源,http body,存在的資源局部更新
head: 獲取http header
options: 獲取支持的method
trace: 追蹤,返回請求回環(huán)信息
connect: 建立隧道通信
狀態(tài)碼狀態(tài)碼和狀態(tài)文字
狀態(tài)碼: 是用來反應(yīng)服務(wù)器響應(yīng)情況的
最常見的: 200 OK, 404 NOT FOUND,
狀態(tài)文字是用來描述狀態(tài)碼,便于人觀察
響應(yīng)中的狀態(tài)碼
狀態(tài)碼 | 定義 | 說明 |
---|---|---|
1xx | 信息 | 接收到請求,繼續(xù)處理 |
2xx | 成功 | 操作成功地收到請求,理解和接受 |
3xx | 重定向 | 為了完成請求,必須采取進一步措施 |
4xx | 客戶端錯誤 | 請求的語法錯誤或不能完全被滿足 |
5xx | 服務(wù)端錯誤 | 服務(wù)器無法完成明顯有效的請求 |
常用的狀態(tài)碼:
200 -- 服務(wù)器成功返回網(wǎng)頁
301/2 -- 永久/臨時重定向
304 Not Modified -- 未修改 (客戶端告知服務(wù)器請求的資源,時間和 ETag是否變化)
307 重定向中保持原有的請求數(shù)據(jù).(POST重定向之后,數(shù)據(jù)丟失)
失敗的狀態(tài)碼:
404 -- 請求的網(wǎng)頁不存在,地址錯誤。
403 -- 禁止訪問,權(quán)限不足。
503 -- 服務(wù)器暫時不可用
500 -- 服務(wù)器內(nèi)部錯誤
502(Bad Gateway) -- 網(wǎng)關(guān)錯誤(ip設(shè)置的時候網(wǎng)關(guān)地址錯誤)
200: ok
301: 永久重定向
302: 臨時重定向
303: 臨時重定向,要求用get請求資源
304: not modified, 返回緩存,和重定向無關(guān)
307: 臨時重定向,嚴(yán)格不從post到get
400: 參數(shù)錯誤
401: 未通過http認(rèn)證
403: forbidden,未授權(quán)
404: not found,不存在資源
500: internet server error,代碼錯誤
502: bad gateway,fastcgi返回的內(nèi)容web server不明白
503: service unavailable,服務(wù)不可用
504: gateway timeout,fastcgi響應(yīng)超時
Header Fields常見通用頭部
Cache-Control:
no-cache: 不緩存過期的緩存
no-store: 不緩存
Pragma:
no-cache: 不使用緩存,http1.1前的歷史字段
Connection:
控制不在轉(zhuǎn)發(fā)給代理首部字段
Keep-Alive/Close:持久連接
Date: 創(chuàng)建http報文的日期
常見請求頭
Accept:可以處理的媒體類型和優(yōu)先級
Host:目標(biāo)主機域名
Referer: 請求從哪發(fā)起的原始資源URI
User-Agent:創(chuàng)建請求的用戶代理名稱
Coolie:cookie信息
常見響應(yīng)頭
Location: 重定向地址
Server: 被請求的服務(wù)web server的信息
Set-Cookie:要設(shè)置的cookie信息
NAME:要設(shè)置的鍵值對
expires:cookie過期時間
path: 指定發(fā)送cookie的目錄
domain: 指定發(fā)送cookie的域名
Secure: 指定之后只有https下才發(fā)送cookie
HostOnly:指定之后javascript無法讀取cookie
HTTPS概念:在http協(xié)議上增加了ssl(secure socket layer)層。
SSL層 ↓ 應(yīng)用層 ↓ 傳輸層 ↓ 網(wǎng)絡(luò)層 ↓ 鏈路層 ↓ 實體層
HTTPS認(rèn)證流程
發(fā)起請求 ---------------------------> server 下發(fā)證書 <--------------------------- server 證書數(shù)字簽名(用證書機構(gòu)公鑰加密) ---------------------------> 證書機構(gòu) 證書數(shù)字簽名驗證通過 client(內(nèi)置證書機構(gòu)證書) <--------------------------- 證書機構(gòu) 公鑰加密隨機密碼串(未來的共享秘鑰) ---------------------------> server私鑰解密(非對稱加密) SSL協(xié)議結(jié)束 HTTP協(xié)議開始 <--------------------------- server(對稱加密) 共享秘鑰加密 HTTP ---------------------------> server(對稱加密)
核對證書:證書機構(gòu)的公開密鑰驗證整數(shù)的數(shù)字簽名
公開密鑰加密建立連接:非對稱加密
共享密鑰加密
HTTP2多路復(fù)用:多個請求共享一個tcp連接
全雙工通信
必須https://
頭部壓縮
二進制傳輸
socket編程socket發(fā)送,HTTP請求.
/** * PHP + socket編程 ,發(fā)送HTTP請求 * * 模擬下載, 注冊,登陸, 批量發(fā)帖 */ // http請求類的接口 interface Proto { // 連接URL public function conn($url); // 發(fā)送get查詢 public function get(); // 發(fā)送post查詢 public function post(); // 關(guān)閉連接 public function close(); } class Http implements Proto { const CRLF = " "; // 換行信息 protected $errno = -1; // 錯誤編號 protected $errstr = ""; // 錯誤信息 protected $response = ""; // 響應(yīng)內(nèi)容 protected $urlInfo = null; // URL信息 protected $version = "HTTP/1.1"; // 協(xié)議版本 protected $fh = null; // 句柄 protected $line = array(); // 請求行信息 protected $header = array(); // 請求頭信息 protected $body = array(); // 請求主體信息 public function __construct( $url ) { $this->conn($url); // 設(shè)置頭信息 $this->setHeader("Host: " . $this->urlInfo["host"]); } /** * 設(shè)置請求行 * @param {Stinrg} $method 請求方法 默認(rèn)GET */ protected function setLine( $method ) { $this->line[0] = $method . " " . $this->urlInfo["path"] . " " . $this->version; } /** * 聲明頭信息 * @param {String} $headerline 頭信息 */ protected function setHeader( $headerline ) { $this->header[] = $headerline; } /** * 寫主體信息 * @param {Array} $body 設(shè)置body信息 */ protected function setBody( $body ) { $this->body[] = http_build_query($body); } /** * 連接URL * @param {String} $url 連接的URL */ public function conn( $url ) { // 分析URL $this->urlInfo = parse_url($url); // 判斷端口 $this->urlInfo["port"] = isset($this->urlInfo["port"]) && $this->urlInfo["port"] == 80 ? $this->urlInfo["port"] : 80; // 連接 $this->fh = fsockopen($this->urlInfo["host"], $this->urlInfo["port"], $this->errno, $this->errstr, 3); } /** * 構(gòu)造get查詢 */ public function get() { $this->setLine("GET"); $this->request(); return $this->response; } /** * 請求get數(shù)據(jù) * 請求POST數(shù)據(jù) */ public function request() { // 拼接請求信息 $req = array_merge($this->line, $this->header, array(""), $this->body, array("")); $req = implode(self::CRLF, $req); // 寫 fwrite($this->fh, $req); // 讀取 while ( !feof($this->fh) ) { $this->response .= fread($this->fh, 1024); } // 關(guān)閉連接 $this->close(); } /** * 構(gòu)造post查詢 * @param {Array} $body body 的信息 * */ public function post( $body=array() ) { // 設(shè)置請求行 $this->setLine("POST"); // 構(gòu)造主體信息 $this->setBody($body); // 設(shè)置 Content-type 和 計算Content-length $this->setHeader("Content-type: application/x-www-form-urlencoded"); $this->setHeader("Content-length: " . strlen($this->body[0])); $this->request(); return $this->response; } /** * 關(guān)閉連接 */ public function close() { fclose($this->fh); } } set_time_limit(0); // 設(shè)置腳本最大執(zhí)行時間 // $url = "http://luqi.baijia.baidu.com/article/719576"; $url = "http://www.linxingzhang.com/index.php"; $http = new Http($url); // echo $http->get(); echo $http->post(array("tit" => "xixi", "con" => "pink"));http協(xié)議模擬登陸
需要的登陸信息,提供請求信息,模擬提供.
// content $url = "http://w.coral.qq.com/article/comment/"; $msg = array( "targetid" => 1665529109, "type" => 1, "format" => "SCRIPT", "callback" => "parent.topCallback", "content" => "backbone", "_method" => "put", "g_tk" => 1437957853, "code" => 1, "source" => 1, "subsource" => 0, "picture" => "" ); set_time_limit(0); $http = new Http($url); // 模擬頭信息 $http->setHeader("cookie: ptui_loginuin=1129507496@qq.com; pt2gguin=o1129507496; uin=o1129507496; skey=@eHnHS7nT1; ptisp=ctc; RK=9gcWWrSXMK; ptcz=ad2886a1a4a2008cdf953cee396e4c18542dd5667d055f98c1cc7363fc1973ff; pac_uid=1_1129507496; o_cookie=1129507496; pgv_info=ssid=s595782189; pgv_pvid=6186477584; uid=324803742"); $http->setHeader("Referer: http://www.qq.com/coral/coralBeta3/coralMainDom3.0.htm"); $http->setHeader("Upgrade-Insecure-Requests:1"); $http->setHeader("User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36"); // echo $http->post( $msg ); file_put_contents("./res.html", $http->post( $msg )); echo "ook";referer頭與防盜鏈
網(wǎng)站統(tǒng)計
網(wǎng)站統(tǒng)計結(jié)果,如何知道用戶從那些渠道中進入本網(wǎng)站?
統(tǒng)計時,是如何得知用戶從哪兒來到本網(wǎng)站?
在HTTP協(xié)議中,頭信息里,有一個重要的選項:referer
referer:代表網(wǎng)頁的來源,即上一頁的地址.
如果直接在瀏覽器地址欄上輸入,進入網(wǎng)頁,則沒有referer頭.
如何配置apache服務(wù)器用于圖片防盜鏈
原理:在web服務(wù)器層面,根據(jù)http協(xié)議的referer頭信息來判斷。如果來自站外,則統(tǒng)一重寫到一個很小的防盜鏈提醒的圖片上.(url重寫)
apache重寫模塊 mod_rewrite。(打開mod_rewrite.so)
LoadModule rewrite_module modules/mod_rewrite.so
開啟后,支持重寫模塊.
* 在需要防盜的網(wǎng)站或目錄,寫.htaccess文件,并指定防盜鏈規(guī)則.
如何指定,分析referer,如果不是來自本站,從寫url.
重寫規(guī)則
那種情況重寫:
是jpeg/jpg/git/png圖片時. 是referer頭信息與localhost不匹配時重寫.
> 如何重寫
統(tǒng)一rewirte 到 某個防盜鏈圖片.
mod_rewrite
.hatccess文件:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} .*.(jpg|jpeg|git|png) [NC] RewriteCond %{HTTP_REFERER} !muchai.com [NC] RewriteRule .* http://linxingzhang.com/blog/img/weixin.jpg
采集
模擬referer中的信息來請求數(shù)據(jù).
$http = new Http("http://linxingzhang.com/blog/img/weixin.jpg"); $http->setHeader("Referer: http://www.muchai.com"); $res = $http->get(); file_put_contents("./xixi.jpg", substr(strstr($res, " "), 4));http協(xié)議緩存控制
圖片的下載:
第一次請求 200ok
第二次請求 304 not modified(未修改狀態(tài))
在網(wǎng)絡(luò)上有一些緩存服務(wù)器,瀏覽器自身也有緩存功能。
當(dāng)?shù)谝淮卧L問某圖片時,正常下載圖片,返回值200
基于一個前提(圖片不會經(jīng)常改動),服務(wù)器在返回200的同時,還返回該圖片的"簽名"Etag. (簽名:圖片的指紋)
當(dāng)瀏覽器再次訪問的同時去服務(wù)器校驗"指紋",如果圖片沒有變化。直接使用緩存中的圖片.減輕的服務(wù)器的負(fù)擔(dān).
觀察請求數(shù)據(jù):
第一次訪問
請求頭:
相應(yīng)頭:
第二次請求
請求頭
如果 自"Wed, 14 Dec 2016 15:41:45 GMT" 這個時間點以后,圖片修改過,則重新請求。
如果圖片最新的ETag的值和 If-None-Match的值不匹配則重新匹配,則重新請求。
響應(yīng)頭
如果是304時,瀏覽器從本地取值.
如果網(wǎng)站比較大,有N臺緩存服務(wù)器,那么這N臺服務(wù)器,主服務(wù)器如何處理主服務(wù)器上的文件
要不要緩存 ?
緩存多久?
緩存服務(wù)器與主服務(wù)器之間,應(yīng)該有一些協(xié)議來說明這兩個問題。
使用什么協(xié)議,來說明這兩個問題。
使用頭信息,cache-control 來控制。
使用方法:
相關(guān)模塊: mod_expires.
在服務(wù)器,打開apache的expires擴展. 利用該擴展,來控制圖片,css,html等緩存的生存周期及是否緩存.
打開httpd.conf配置項
LoadModule expires_module modules/mod_expires.so
在 .htaccess 文件配置中.
ExpiresDefault "[plus] { }*" ExpiresByType type/encoding " [plus] { }>*"
ExpiresDefault 是設(shè)置默認(rèn)的緩存參數(shù)
ExpiresByType是按照文件類型來設(shè)置獨特的緩存參數(shù).
base 基于那個時間點計算緩存有效期
參數(shù):
access/now: 基于請求響應(yīng)的那一瞬間. (例如:從此瞬間到一個月之后)
modification: 基于被請求文件最后修改日期來計算. (例如:最后修改日期后一周內(nèi))
num: 緩存時間的大小 (例如:30)
type: 緩存的單位(例如:天)
給jpeg圖片設(shè)置一個月的緩存周期
ExpiresActive On ExpiresByType image/jpeg "access plus 30 days"
如果在集群環(huán)境里,緩存服務(wù)器得到此圖片,將會認(rèn)為在一個月內(nèi)有效,減輕了主服務(wù)器的負(fù)擔(dān)。
設(shè)置服務(wù)器,不讓存在緩存.
例如:有些個人信息,不允許緩存服務(wù)器,必須到主服務(wù)器去請求.
Control-cache: no-store,must-revalidate; // 不允許緩存,必須去主服務(wù)器驗證.
利用apache的header模塊
開啟httpd.conf中的header模塊
LoadModule headers_module modules/mod_headers.so
http內(nèi)容壓縮header set Cache-Control: "no-store,must-revalidate"
為了提高網(wǎng)頁在網(wǎng)絡(luò)上的傳輸速度.服務(wù)器對主體信息進行壓縮.
常見的,gzip壓縮,deflate壓縮,compress壓縮以及sdch壓縮.
壓縮的過程:
服務(wù)器返回壓縮內(nèi)容,客戶端接收到壓縮,再解壓縮,再渲染頁面.
Content-Length壓縮后的長度
實際渲染的文件大小:
如何在apache啟用的壓縮功能?
開啟deflate模塊,或者gzip模塊
LoadModule deflate_module modules/mod_deflate.so
在conf文件中,配置:
DeflateCompressionLevel 6 AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/atom_xml AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php AddOutputFilterByType DEFLATE image/svg+xml
為什么要指定文件類型壓縮.
壓縮需要耗CUP資源
圖片/視頻等文件,壓縮效果不好.
一般指定壓縮文本格式的文件.
服務(wù)器如何知道瀏覽器支持gzip壓縮
客戶端允許發(fā)送Accept-Encoding信息.與服務(wù)器協(xié)商.(協(xié)商頭信息)
comet方向ajaxhttp協(xié)議+持久連接+分塊傳輸 => 反向ajax
反向ajax又叫:comet,server push,服務(wù)器推技術(shù).
應(yīng)用范圍:網(wǎng)頁聊天服務(wù)器,新浪微博在線聊天,google mail網(wǎng)頁聊天.
原理:HTTP協(xié)議的特點,連接--斷開.
具體什么時間斷開?
服務(wù)器響應(yīng)content-length,收到指定length長度的內(nèi)容時,也就斷開.
在http1.1協(xié)議中,允許不寫content-length。(比如要發(fā)送的內(nèi)容長度確實不知道)這是,需要一個特殊的content-type:chunked
分塊傳輸:
"; ob_flush(); flush(); // 把產(chǎn)生的內(nèi)容立即返回給瀏覽器,而不要等待瀏覽器結(jié)束 $i = 1; while ( $i++ ) { echo $pad, "
"; echo $i, "
"; ob_flush(); flush(); sleep(1); } /** * * 即時通信. * * 服務(wù)器端不間斷,推送信息. 到客戶端. */ ?>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/22162.html
摘要:公司中有不少服務(wù)是以或者方式連接第三方公司做的服務(wù)來交互數(shù)據(jù),最近新增加了個需求,就是第三方服務(wù)發(fā)版時候,連接不上對方服務(wù)器時候要進行重試,其它原因?qū)е碌臉I(yè)務(wù)處理失敗,則按失敗處理,不會再進行調(diào)用。 公司中有不少服務(wù)是以curl或者soap方式連接第三方公司做的服務(wù)來交互數(shù)據(jù),最近新增加了個需求,就是第三方服務(wù)發(fā)版時候,連接不上對方服務(wù)器時候要進行重試,其它原因?qū)е碌臉I(yè)務(wù)處理失敗,則按...
摘要:本文則主要總結(jié)了心悅俱樂部的接入層從文本協(xié)議到二進制協(xié)議迭代過程中的技術(shù)方案,包括協(xié)議規(guī)范安全性等方面的內(nèi)容。在心悅的文本協(xié)議方案中,采用的是對請求數(shù)據(jù)進行模式的加密。包括明文的協(xié)議包頭和密文的二進制流。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實踐干貨哦~。 作者:羅廣鎮(zhèn) | 騰訊移動開發(fā)工程師 App與后臺通信通常有采用json等文本協(xié)議或者采用二進制協(xié)議,本文則主要總結(jié)了心...
摘要:數(shù)據(jù)鏈路層中的主要協(xié)議有點對點協(xié)議協(xié)議以太網(wǎng)。協(xié)議是網(wǎng)際層的核心通過路由選擇將下一跳封裝后交給網(wǎng)絡(luò)接口層。用來檢測網(wǎng)絡(luò)是否通暢使用命令。開放表明協(xié)議不是受某一家廠商控制而是公開發(fā)表的。 博文參考 http://www.cnblogs.com/gsk99/p/4920699.html http://www.cnblogs.com/iloverain/p/5619665.html http...
閱讀 788·2021-10-09 09:44
閱讀 692·2019-08-30 13:55
閱讀 3153·2019-08-29 15:07
閱讀 3218·2019-08-29 13:09
閱讀 2413·2019-08-29 11:10
閱讀 1289·2019-08-26 14:05
閱讀 3591·2019-08-26 13:57
閱讀 2206·2019-08-23 16:42