HTTP備忘

HTTP

http,基于tcp協(xié)議,位于網(wǎng)絡(luò)分層模型的應(yīng)用層,tcp則是位于傳輸層,所以說(shuō)http是tcp的上層協(xié)議。
傳輸?shù)幕締挝唬簣?bào)文(由8位組字節(jié)流組成)。

絕對(duì)URI格式:


報(bào)文格式:

報(bào)文首部:

報(bào)文主體:請(qǐng)求報(bào)文一般為空(POST方法時(shí)不為空),在響應(yīng)報(bào)文中則指的是所請(qǐng)求的資源內(nèi)容

請(qǐng)求行:請(qǐng)求方法+URI+協(xié)議版本(GET /index.htm HTTP/1.1)

  • 請(qǐng)求方法:
  • GET:用于獲取資源
  • POST:用于傳輸實(shí)體主體
  • PUT:用于傳輸文件(出于安全考慮,一般不使用,除非web架構(gòu)存在安全驗(yàn)證機(jī)制)
  • DELETE:用于刪除文件(與PUT相反的方法,安全問(wèn)題一樣存在)
  • HEAD:與GET方法一樣,但是不返回報(bào)文主體部分,用于確認(rèn)資源有效性等
  • OPTIONS:用于詢問(wèn)支持的方法
  • TRACE:路徑追蹤,發(fā)送請(qǐng)求時(shí),加入Max-Forwards字段及其值,每經(jīng)過(guò)一次服務(wù)器,字段值減1,數(shù)值為0時(shí),停止傳輸,由最后收到請(qǐng)求的服務(wù)器返回200 OK的響應(yīng)
  • CONNECT:要求在與代理服務(wù)器建立隧道通信,實(shí)現(xiàn)用隧道進(jìn)行TCP通信,HTTPS通信時(shí)用到

狀態(tài)行:版本協(xié)議+狀態(tài)碼+原因短語(yǔ)(HTTP/1.1 200 OK)

  • 狀態(tài)碼類(lèi)別:
類(lèi)別 原因短語(yǔ)
1XX Informational(信息性狀態(tài)碼) 接收的請(qǐng)求正在處理
2XX Success(成功狀態(tài)碼) 請(qǐng)求正常處理完畢
3XX Redirection(重定向狀態(tài)碼) 需要進(jìn)行附加操作以完成請(qǐng)求
4XX Client Error(客戶端錯(cuò)誤狀態(tài)碼) 服務(wù)器無(wú)法處理請(qǐng)求
5XX Server Error(服務(wù)器錯(cuò)誤狀態(tài)碼) 服務(wù)器處理請(qǐng)求出錯(cuò)
  • 常見(jiàn)狀態(tài)碼:
    • 200 OK :請(qǐng)求被正常處理
    • 204 No Content:請(qǐng)求處理成功。但是沒(méi)有資源返回
    • 206 Partial Content:客戶端進(jìn)行范圍請(qǐng)求時(shí),服務(wù)器成功執(zhí)行這部分請(qǐng)求。響應(yīng)報(bào)文中包含由Content-Range指定范圍的內(nèi)容實(shí)體
    • 301 Moved Permanently:資源的URI進(jìn)行了永久性的更換
    • 302 Found:資源URI進(jìn)行了臨時(shí)性更換
    • 303 See Other:與302相同的功能,區(qū)別是要求客戶端采用GET方法進(jìn)行資源請(qǐng)求
    • 304 Not Modified:客戶端進(jìn)行附加條件的請(qǐng)求(If-Match、If-Range),服務(wù)器允許請(qǐng)求資源,但條件未滿足情況,表示服務(wù)器資源未改變,可直接使用未過(guò)期緩存,雖被劃分到3xx類(lèi)別,但與重定向沒(méi)有關(guān)系
    • 307 Temporary Redirect:與302含義相同,302禁止POST變成GET,但大家可能不遵守,307會(huì)遵照瀏覽器標(biāo)準(zhǔn),不會(huì)從POST變GET
    • 400 Bad Request:請(qǐng)求報(bào)文存在語(yǔ)法錯(cuò)誤
    • 401 Unauthorized:需要進(jìn)行HTTP認(rèn)證,若之前已經(jīng)進(jìn)行過(guò)1次請(qǐng)求,表示認(rèn)證失敗
    • 403 Forbidden:訪問(wèn)被拒絕
    • 404 Not Found:無(wú)法找到請(qǐng)求的資源,服務(wù)器拒絕請(qǐng)求時(shí)不想解釋也可能會(huì)用
    • 500 Internal Server Error:服務(wù)器在執(zhí)行請(qǐng)求時(shí)發(fā)生錯(cuò)誤,可能存在一些BUG或者臨時(shí)的故障
    • 503 Service Unavailable:服務(wù)器超負(fù)載或進(jìn)行停機(jī)維護(hù)

請(qǐng)求首部字段、響應(yīng)首部字段、通用首部字段,這3個(gè)首部字段的字段說(shuō)明放置本文的最后,下面是Cookie

COOKIE:HTTP協(xié)議是一種無(wú)狀態(tài)協(xié)議,也就是在HTTP級(jí)別,協(xié)議對(duì)于發(fā)送過(guò)的請(qǐng)求和響應(yīng)都不做持久化處理。于是為了管理用戶狀態(tài)(如登錄狀態(tài)),引入了Cookie,web瀏覽器會(huì)將一些數(shù)據(jù)臨時(shí)寫(xiě)入用戶計(jì)算機(jī),當(dāng)用戶再次訪問(wèn)時(shí),將讀取之前存放的Cookie進(jìn)行通訊,在報(bào)文首部字段中,Cookie的首部字段為:

首部字段名 說(shuō)明 首部類(lèi)型
Set-Cookie 開(kāi)始狀態(tài)管理所使用的Cookie信息 響應(yīng)首部字段
Cookie 服務(wù)器接收到的Cookie信息 請(qǐng)求首部字段

Set-Cookie字段屬性

屬性 說(shuō)明
NAME=VALUE 賦予Cookie的名稱和其值(必需項(xiàng))
expires=DATE Cookie的有效期(若不明確指定則默認(rèn)瀏覽器關(guān)閉前為止)
path=PATH 將服務(wù)器上的文件目錄作為Cookie的適用對(duì)象(不指定則默認(rèn)文檔所在的文件目錄)
domain=域名 作為Cookie適用對(duì)象的域名(不指定則默認(rèn)創(chuàng)建Cookie的服務(wù)器域名)
Secure 僅在HTTPS安全通信時(shí)才會(huì)發(fā)送Cookie
HttpOnly 加以限制,使Cookie不能被JavaScript腳本訪問(wèn)

示例:
Set-Cookie:status=enable; expires=true; 05 Jul 2011 07:26:31 GMT; paht=/; domain=.hackr.jp;

Cookie:status=enable

用戶身份認(rèn)證

  • BASIC認(rèn)證(基本認(rèn)證)
    • 認(rèn)證不夠便捷靈活,安全等級(jí)不夠,不常用
  • DIGEST認(rèn)證(摘要認(rèn)證)
    • 缺點(diǎn)與BASIC認(rèn)證一樣,不常用
  • SSL客戶端認(rèn)證
    • 通過(guò)第三方認(rèn)證機(jī)構(gòu)頒發(fā)證書(shū)進(jìn)行認(rèn)證,需要維護(hù)費(fèi)用
    • 一般都是通過(guò)雙因素認(rèn)證,不止證書(shū)認(rèn)證,還包括了基于表單認(rèn)證
  • FromBase認(rèn)證(基于表單認(rèn)證)
    • 并非HTTP協(xié)議中定義的。即是用戶、密碼登錄的認(rèn)證。比較靈活,其安全等級(jí)由Web服務(wù)端的架構(gòu)安全性能決定,是大多數(shù)采用的方法

HTTPS

HTTP的缺點(diǎn):

  • 明文通信,內(nèi)容可能被竊聽(tīng)
  • 無(wú)身份驗(yàn)證,可能遭遇偽裝
  • 無(wú)驗(yàn)證報(bào)文完整性,可能遭篡改

HTTPS是身披SSL的HTTP


HTTPS=HTTP+加密+認(rèn)證+完整性保護(hù)

  • 加密
    • 共享密鑰加密:又稱對(duì)稱加密。用同一個(gè)密鑰進(jìn)行加密和解密,難點(diǎn)是如何將密鑰安全的送到對(duì)方手上
    • 公開(kāi)密鑰加密:使用一對(duì)非對(duì)稱密鑰進(jìn)行加密。分為公鑰和私鑰,公鑰可公開(kāi)發(fā)布,私鑰為私自持有。通訊時(shí),請(qǐng)求端通過(guò)公鑰加密,響應(yīng)端通過(guò)私鑰解密。
    • 混合加密:公開(kāi)密鑰加密比共享密鑰加密過(guò)程更為復(fù)雜,所以處理速度要更慢。綜合2種的優(yōu)缺點(diǎn),HTTPS采用混合加密,先通過(guò)公開(kāi)密鑰加密
      方式進(jìn)行共享密鑰的交換,然后用交換后的共享密鑰進(jìn)行加密通信。
  • 認(rèn)證
    公開(kāi)密鑰加密,依然存在問(wèn)題,就是無(wú)法確保用戶拿到的公鑰是發(fā)布者實(shí)際發(fā)布的公鑰,于是有了第三方認(rèn)證機(jī)構(gòu),可對(duì)發(fā)布的公鑰進(jìn)行數(shù)字認(rèn)證頒發(fā)數(shù)字認(rèn)證證書(shū)(EV SSL證書(shū)),但是向認(rèn)證機(jī)構(gòu)申請(qǐng)證書(shū)是需要費(fèi)用的

認(rèn)證過(guò)程:

HTTPS的安全通信過(guò)程:

  1. 客戶端通過(guò)發(fā)送Client Hello報(bào)文開(kāi)始SSL通信。報(bào)文中包含客戶端支持的SSL的指定版本、加密組件(Cipher Suite)列表(所使用的加密算法及密鑰長(zhǎng)度等)。
  2. 服務(wù)器可進(jìn)行SSL通信時(shí),會(huì)以Server Hello 報(bào)文作為應(yīng)答。和客戶端一樣,在報(bào)文中包含SSL版本以及加密組件。服務(wù)器的加密組件內(nèi)容是從接受到的客戶端加密組件內(nèi)篩選出來(lái)的。
  3. 之后服務(wù)器發(fā)送Certificate報(bào)文。報(bào)文中包含公開(kāi)密鑰證書(shū)。
  4. 最后服務(wù)器發(fā)送Server Hello Done報(bào)文通知客戶端,最初階段的SSL握手協(xié)商部分結(jié)束。
  5. SSL第一次握手結(jié)束之后,客戶端以Client Key Exchange報(bào)文作為回應(yīng)。報(bào)文中包含通信加密中使用的一種被稱為Pre-master secret的隨機(jī)密碼串。該報(bào)文已用步驟3中的公鑰進(jìn)行加密。
  6. 接著客戶端繼續(xù)發(fā)送Change Cipher Spec報(bào)文。該報(bào)文會(huì)提示服務(wù)器,在此報(bào)文之后的通信會(huì)采用Pre-master secret密鑰加密。
  7. 客戶端發(fā)送Finish報(bào)文。該報(bào)文包含連接至今全部報(bào)文的整體校驗(yàn)值。這次握手協(xié)商是否能夠成功,要以服務(wù)器是否能夠正確解密該報(bào)文作為判定標(biāo)準(zhǔn)。
  8. 服務(wù)器同樣發(fā)送Change Cipher Spec報(bào)文。
  9. 服務(wù)器同樣發(fā)送Finished報(bào)文。
  10. 服務(wù)器和客戶端的Finished報(bào)文交換完畢之后。SSL連接就算建立完成。當(dāng)然,通信會(huì)受到SSL的保護(hù)。從此處開(kāi)始進(jìn)行應(yīng)用層協(xié)議的通信,即發(fā)送HTTP請(qǐng)求。
  11. 應(yīng)用層協(xié)議通信,即發(fā)送HTTP響應(yīng)。
  12. 最后由客戶端斷開(kāi)連接。斷開(kāi)連接時(shí),發(fā)送close_notify報(bào)文。上圖做了一些省略,這步之后再發(fā)送TCP FIN報(bào)文來(lái)關(guān)閉與TCP的通信。
  • 完整性
    在以上流程中,應(yīng)用層發(fā)送數(shù)據(jù)時(shí)會(huì)附加一種叫做MAC(Message Authentication Code)的報(bào)文摘要。MAC能夠查知報(bào)文是否遭到篡改,從而保護(hù)報(bào)文的完整性。

SSL和TLS:TLS是以SSL為原型開(kāi)發(fā)的協(xié)議,目前主流版本是SSL3.0和TLS1.0

HTTP的追加功能協(xié)議和HTTP2.0

SPDY

Google在2010年發(fā)布,旨在消除HTTP的瓶頸

  • 一條連接上只可發(fā)送一個(gè)請(qǐng)求
  • 請(qǐng)求只能從客戶端開(kāi)始。客戶端不可以接收除響應(yīng)以外的指令
  • 請(qǐng)求/響應(yīng)首部未經(jīng)壓縮就發(fā)送。首部信息越多延遲越大
  • 發(fā)送冗長(zhǎng)的首部。每次互相發(fā)送相同的首部造成的浪費(fèi)較多
  • 可任意選擇數(shù)據(jù)壓縮格式。非強(qiáng)制壓縮發(fā)送

SPDY沒(méi)有完全改寫(xiě)HTTP協(xié)議,而是在TCP/IP的應(yīng)用層與傳輸層之間通過(guò)新加會(huì)話層的形式運(yùn)作,考慮到安全問(wèn)題,并規(guī)定通信中使用SSL。

SPDY設(shè)計(jì)


從而獲得了以下功能

  • 多路復(fù)用流
    通過(guò)單一的TCP連接,可以無(wú)限制處理多個(gè)HTTP請(qǐng)求。所有請(qǐng)求的處理都在一條TCP連接上完成,因此TCP的處理效率得到提高
  • 賦予請(qǐng)求優(yōu)先級(jí)
    SPDY不僅可以無(wú)限制地并發(fā)處理請(qǐng)求,還可以給請(qǐng)求逐個(gè)分配優(yōu)先級(jí)順序。這樣主要是為了在發(fā)送多個(gè)請(qǐng)求時(shí),解決因帶寬低而導(dǎo)致響應(yīng)變慢的問(wèn)題
  • 壓縮HTTP首部
    壓縮HTTP請(qǐng)求和響應(yīng)的首部。這樣一來(lái),通信產(chǎn)生的數(shù)據(jù)包流量和發(fā)送的字節(jié)數(shù)就更少了
  • 推送功能
    支持服務(wù)器主動(dòng)向客戶端推送數(shù)據(jù)的功能。這樣,服務(wù)器可直接發(fā)送數(shù)據(jù),而不必等待客戶端的請(qǐng)求
  • 服務(wù)器提示功能
    服務(wù)器可以主動(dòng)提示客戶端請(qǐng)求所需的資源。由于在客戶端發(fā)現(xiàn)資源之前就可以獲知資源的存在,因此在資源已緩存等情況下,可以避免發(fā)送不必要的請(qǐng)求

全雙工通信的WebSocket

不同于SPDY,WebSocket是應(yīng)用層的另一種協(xié)議,替代了HTTP協(xié)議,具有以下特點(diǎn):

  • 推送功能
    支持由服務(wù)器向客戶端推送數(shù)據(jù)的推送功能。這樣,服務(wù)器可直接發(fā)送數(shù)據(jù),而不必等待客戶端的請(qǐng)求
  • 減少通信量
    只要建立起WebSocket連接,就希望一直保持連接狀態(tài)。和HTTP相比,不但每次連接時(shí)的總開(kāi)銷(xiāo)減少,而且由于WebSocket的首部信息很小,通信量也相應(yīng)減少了

為了實(shí)現(xiàn)WebSocket通信,在HTTP連接建立之后,需要完成一次”握手”(Handshaking)的步驟

  • 握手·請(qǐng)求
    為了實(shí)現(xiàn)WebSocket通信,需要用到HTTP的Upgrade首部字段,告知服務(wù)器通信協(xié)議發(fā)生改變

GET /chat HTTP/1.1
HOST:server.example.com
Upgrade:websocket
Connection:Upgrade
Sec-WebSocket-Key:dGH1IHNhbXBsZSBub25jZQ==
Origin:http://example.com
Sec-WebSocket-Protocol:chat,superchat
Sec-WebSocket-Version:13

Sec-WebSocket-Key字段記錄著握手過(guò)程中必不可少的鍵值。
Sec-WebSocket-Protocol中記錄使用的子協(xié)議。
子協(xié)議按WebSocket協(xié)議標(biāo)準(zhǔn)在連接分開(kāi)使用時(shí),定義那些連接的名稱。

  • 握手·響應(yīng)
    對(duì)于之前的請(qǐng)求,返回狀態(tài)碼101 Switching Protocols的響應(yīng)。

HTTP/1.1 101 Switching Protocols
Upgrade:websocket
Connection:Upgrade
Sec-WebSocket-Accept:s3pPLMBiTxaQ9kYGzzhZRbk+XOo=
Sec-WebSocket-Protocol:chat

Sec-WebSocket-Accept的字段值由握手中的Sec-WebSocket-Key字段值生成
成功握手確立WebSocket連接之后,通信不再使用HTTP的數(shù)據(jù)幀,而采用WebSocket獨(dú)立的數(shù)據(jù)幀。

WebSocket通信流程:

HTTP2.0

協(xié)議基礎(chǔ)

  • SPDY
  • HTTP Speed+Mobility
    由微軟公司起草,用于改善并提高移動(dòng)端通信時(shí)的通信速度和性能標(biāo)準(zhǔn)。它建立在Google公司提出的SPDY與WebSocket的基礎(chǔ)之上
  • NetWork+Friendly HTTP Ugrade
    主要是在移動(dòng)端通信時(shí)改善HTTP性能的標(biāo)準(zhǔn)

HTTP/2.0圍繞著主要的7項(xiàng)技術(shù)進(jìn)行討論,大都傾向于采用以下協(xié)議技術(shù)。

壓縮 SPDY、Friendly
多路復(fù)用 SPDY
TLS義務(wù)化 Speed+Mobility
協(xié)商 Speed+Mobility、Friendly
客戶端拉拽(Client Pull)/服務(wù)器推送(Server Push) Speed+Mobility
流量控制 SPDY
WebSocket Speed+Mobility

請(qǐng)求首部字段:

首部字段名 說(shuō)明
Accept 用戶代理可處理的媒體類(lèi)型
Accept-Charset 優(yōu)先的字符集
Accept-Encoding 優(yōu)先的內(nèi)容編碼
Accept-Language 優(yōu)先的語(yǔ)言(自然語(yǔ)言)
Authorization Web認(rèn)證信息
Expect 期待服務(wù)器的特定行為
From 用戶的電子郵箱地址
Host 請(qǐng)求資源所在服務(wù)器
If-Match 比較實(shí)體標(biāo)記(ETag)
If-Modified-Since 比較資源的更新時(shí)間
If-None-Match 比較實(shí)體標(biāo)記(與If-Match相反)
If-Range 資源未更新時(shí)發(fā)送實(shí)體Byte的范圍請(qǐng)求
If-Unmodified-Since 比較資源的更新時(shí)間(與If-Modified-Since相反)
Max-Forwards 最大傳輸逐跳數(shù)
Proxy-Authorization 代理服務(wù)器要求客戶端的認(rèn)證信息
Range 實(shí)體的字節(jié)范圍請(qǐng)求
Referer 對(duì)請(qǐng)求中URI的原始獲取方
TE 傳輸編碼的優(yōu)先級(jí)
User-Agent HTTP客戶端程序的信息

響應(yīng)首部字段:

首部字段名 說(shuō)明
Accept-Ranges 是否接受字節(jié)范圍請(qǐng)求
Age 推算資源創(chuàng)建經(jīng)過(guò)時(shí)間
ETag 資源的匹配信息
Location 令客戶端重定向至指定URI
Proxy-Authenticate 代理服務(wù)器對(duì)客戶端的認(rèn)證信息
Retry-After 對(duì)再次發(fā)起請(qǐng)求的時(shí)機(jī)要求
Server HTTP服務(wù)器的安裝信息
Vary 代理服務(wù)器緩存的管理信息
WWW-Authenticate 服務(wù)器對(duì)客戶端的認(rèn)證信息

通用首部字段:

首部字段名 說(shuō)明
Cache-Control 控制緩存的行為
Connection 逐跳首部、連接的管理
Date 創(chuàng)建報(bào)文的日期時(shí)間
Pragma 報(bào)文指令
Trailer 報(bào)文末端的首部一覽
Transfer-Encoding 指定報(bào)文主體的傳輸編碼方式
Upgrade 升級(jí)為其他協(xié)議
Via 代理服務(wù)器的相關(guān)信息
Warning 錯(cuò)誤通知

實(shí)體首部字段:

首部字段名 說(shuō)明
Allow 資源可支持的HTTP方法
Content-Encoding 實(shí)體主體適用的編碼方式
Content-Language 實(shí)體主體的自然語(yǔ)言
Content-Length 實(shí)體主體的大小(單位:字節(jié))
Content-Location 替代對(duì)應(yīng)資源的URI
Content-MD5 實(shí)體主體的報(bào)文摘要
Content-Range 實(shí)體主體的位置范圍
Content-Type 實(shí)體主體的媒體類(lèi)型
Expires 實(shí)體主體過(guò)期的日期時(shí)間
Last-Modified 資源的最后修改日期時(shí)間
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評(píng)論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,155評(píng)論 3 425
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 177,635評(píng)論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,539評(píng)論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,255評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,646評(píng)論 1 326
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,838評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,399評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,146評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,338評(píng)論 1 372
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,565評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,983評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,257評(píng)論 1 292
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,059評(píng)論 3 397
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,296評(píng)論 2 376

推薦閱讀更多精彩內(nèi)容

  • 1. 網(wǎng)絡(luò)基礎(chǔ)TCP/IP HTTP基于TCP/IP協(xié)議族,HTTP屬于它內(nèi)部的一個(gè)子集。 把互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集...
    yozosann閱讀 3,456評(píng)論 0 20
  • 前面兩篇文章中關(guān)于 HTTP 相關(guān)知識(shí)基本上介紹的差不多了,這篇文章是對(duì) HTTP 協(xié)議的補(bǔ)充,主要介紹以下三點(diǎn)內(nèi)...
    lijiankun24閱讀 1,320評(píng)論 2 3
  • 本篇文章篇幅比較長(zhǎng),先來(lái)個(gè)思維導(dǎo)圖預(yù)覽一下。 一、概述 1.計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)分層 2.TCP/IP 通信傳輸流 ...
    滌生_Woo閱讀 55,143評(píng)論 24 557
  • 前言 本系列主要分析OKHttp源代碼的框架和設(shè)計(jì)思想,因?yàn)镺KHttp實(shí)現(xiàn)了HTTP協(xié)議,所以在做源代碼分析之前...
    嘎啦果安卓獸閱讀 4,101評(píng)論 1 15
  • HTTP概述 HTTP協(xié)議規(guī)定,一定是客戶端開(kāi)始建立通信的,也就是說(shuō)請(qǐng)求一定是從客戶端發(fā)出,服務(wù)器端響應(yīng)請(qǐng)求,服務(wù)...
    exialym閱讀 711評(píng)論 1 5