Android面試必看之網(wǎng)絡(luò)相關(guān)知識(shí)篇

面試專題我放在git上了,地址Github 歡迎fork然后一起更新

1皇筛,基礎(chǔ)知識(shí)

  • ip地址和端口號(hào):ip地址是唯一的通訊實(shí)體泉孩,一個(gè)端口號(hào)對(duì)應(yīng)一個(gè)通訊實(shí)體
  • tcp/udp協(xié)議:udp是無連接協(xié)議漫拭,可以通過任何途徑達(dá)到目的地避消,不可靠,但是效率高顽冶,可以用來做做視頻聊天

tcp需要三次握手欺抗,是可靠的協(xié)議,傳輸效率低强重,

  • URL:統(tǒng)一的資源定位器绞呈,
  • InetAddress,java提供的一個(gè)地址類
  • http連接的特點(diǎn):客戶端發(fā)送的每次請(qǐng)求都需要服務(wù)器回送響應(yīng)间景,在請(qǐng)求結(jié)束后佃声,會(huì)主動(dòng)釋放連接。從建立連接到關(guān)閉連接的過程稱為一次連接倘要。
  • 網(wǎng)絡(luò)分層:OSI七層模型(應(yīng)用層圾亏,表示層十拣,會(huì)話層,傳輸層志鹃,網(wǎng)絡(luò)層夭问,數(shù)據(jù)鏈路層,物理層)

2曹铃,Socket

創(chuàng)建socket實(shí)例缰趋,大部分基于

image.png

客戶端連接:

1,創(chuàng)建socket對(duì)象

2陕见,連接建立后秘血,通過輸出流向服務(wù)器端發(fā)送請(qǐng)求信息

3,通過輸入流獲取服務(wù)器響應(yīng)的信息

4评甜,關(guān)閉響應(yīng)資源

服務(wù)端連接:

1直撤,創(chuàng)建ServerSocket對(duì)象,綁定監(jiān)聽端口

2蜕着,通過accept()方法監(jiān)聽客戶端請(qǐng)求

3,連接建立后红柱,通過輸入流讀取客戶端發(fā)送的請(qǐng)求信息

4承匣,通過輸入流向客戶端發(fā)送信息

5,關(guān)閉相關(guān)資源

3锤悄,Socket建立網(wǎng)絡(luò)連接的步驟:

建立Socket連接至少需要一對(duì)套接字韧骗,其中一個(gè)運(yùn)行與客戶端--ClientSocket,一個(gè)運(yùn)行于服務(wù)端--ServiceSocket

1零聚、服務(wù)器監(jiān)聽:服務(wù)器端套接字并不定位具體的客戶端套接字袍暴,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài)隶症,等待客戶端的連接請(qǐng)求政模。

2、客戶端請(qǐng)求:指客戶端的套接字提出連接請(qǐng)求蚂会,要連接的目標(biāo)是服務(wù)器端的套接字淋样。注意:客戶端的套接字必須描述他要連接的服務(wù)器的套接字,

指出服務(wù)器套接字的地址和端口號(hào)胁住,然后就像服務(wù)器端套接字提出連接請(qǐng)求趁猴。

3、連接確認(rèn):當(dāng)服務(wù)器端套接字監(jiān)聽到客戶端套接字的連接請(qǐng)求時(shí)彪见,就響應(yīng)客戶端套接字的請(qǐng)求儡司,建立一個(gè)新的線程,把服務(wù)器端套接字的描述

發(fā)給客戶端余指,一旦客戶端確認(rèn)了此描述捕犬,雙方就正式建立連接。而服務(wù)端套接字則繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求或听。

4探孝,Socket和http的區(qū)別

Http協(xié)議:簡單的對(duì)象訪問協(xié)議,對(duì)應(yīng)于應(yīng)用層誉裆。Http協(xié)議是基于TCP鏈接的顿颅。

tcp協(xié)議:對(duì)應(yīng)于傳輸層

ip協(xié)議:對(duì)應(yīng)與網(wǎng)絡(luò)層

TCP/IP是傳輸層協(xié)議,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸足丢;而Http是應(yīng)用層協(xié)議粱腻,主要解決如何包裝數(shù)據(jù)。

Socket是對(duì)TCP/IP協(xié)議的封裝斩跌,Socket本身并不是協(xié)議绍些,而是一個(gè)調(diào)用接口(API),通過Socket耀鸦,我們才能使用TCP/IP協(xié)議柬批。

Http連接:http連接就是所謂的短連接,及客戶端向服務(wù)器發(fā)送一次請(qǐng)求袖订,服務(wù)器端相應(yīng)后連接即會(huì)斷掉氮帐。

socket連接:socket連接及時(shí)所謂的長連接,理論上客戶端和服務(wù)端一旦建立連接洛姑,則不會(huì)主動(dòng)斷掉上沐;但是由于各種環(huán)境因素可能會(huì)是連接斷開,比如說:服務(wù)器端或客戶端主機(jī)down了楞艾,網(wǎng)絡(luò)故障参咙,或者兩者之間長時(shí)間沒有數(shù)據(jù)傳輸,網(wǎng)絡(luò)防火墻可能會(huì)斷開該鏈接已釋放網(wǎng)絡(luò)資源硫眯。所以當(dāng)一個(gè)socket連接中沒有數(shù)據(jù)的傳輸蕴侧,那么為了位置連續(xù)的連接需要發(fā)送心跳消息,具體心跳消息格式是開發(fā)者自己定義的两入。

5戈盈,java的IO接口

基于字節(jié),字符谆刨,磁盤塘娶,網(wǎng)絡(luò)操作的IO接口

(BIO)阻塞式IO的通訊模型,如下圖()


image.png

BIO數(shù)據(jù)在寫入OutputStream

6痊夭, TCP 與 UDP 的區(qū)別

  • TCP面向連接(如打電話要先撥號(hào)建立連接);UDP是無連接的刁岸,即發(fā)送數(shù)據(jù)之前不需要建立連接
  • TCP提供可靠的服務(wù)。也就是說她我,通過TCP連接傳送的數(shù)據(jù)虹曙,無差錯(cuò)迫横,不丟失,不重復(fù)酝碳,且按序到達(dá);UDP盡最大努力交付矾踱,即不保證可靠交付
  • TCP面向字節(jié)流,實(shí)際上是TCP把數(shù)據(jù)看成一連串無結(jié)構(gòu)的字節(jié)流;UDP是面向報(bào)文的 UDP沒有擁塞控制疏哗,因此網(wǎng)絡(luò)出現(xiàn)擁塞不會(huì)使源主機(jī)的發(fā)送速率降低(對(duì)實(shí)時(shí)應(yīng)用很有用呛讲,如IP電話,實(shí)時(shí)視頻會(huì)議等)
  • 每一條TCP連接只能是點(diǎn)到點(diǎn)的;UDP支持一對(duì)一返奉,一對(duì)多贝搁,多對(duì)一和多對(duì)多的交互通信
  • TCP首部開銷20字節(jié);UDP的首部開銷小,只有8個(gè)字節(jié)
  • TCP的邏輯通信信道是全雙工的可靠信道芽偏,UDP則是不可靠信道

7雷逆,TCP 的 3 次握手和四次揮手

第一次握手:客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài)污尉,等待服務(wù)器確認(rèn)膀哲;

第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1)被碗,同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k)某宪,即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài)蛮放;

第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1)奠宜,此包發(fā)送完畢包颁,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手压真。

握手過程中傳送的包里不包含數(shù)據(jù)娩嚼,三次握手完畢后,客戶端與服務(wù)器才正式開始傳送數(shù)據(jù)滴肿。理想狀態(tài)下岳悟,TCP連接一旦建立,在通信雙方中的任何一方主動(dòng)關(guān)閉連接之前泼差,TCP 連接都將被一直保持下去贵少。斷開連接時(shí)服務(wù)器和客戶端均可以主動(dòng)發(fā)起斷開TCP連接的請(qǐng)求,斷開過程需要經(jīng)過“四次揮手”

第一次揮手:客戶端發(fā)送報(bào)文告訴服務(wù)器沒有數(shù)據(jù)要發(fā)送了

第二次揮手:服務(wù)端收到堆缘,再發(fā)送給客戶端告訴它我收到了

第三次揮手:服務(wù)端向客戶端發(fā)送報(bào)文滔灶,請(qǐng)求關(guān)閉連接

第四次揮手:客戶端收到關(guān)閉連接的請(qǐng)求,向服務(wù)端發(fā)送報(bào)文吼肥,服務(wù)端關(guān)閉連接

8录平,TCP為什么三次握手不是兩次握手麻车,為什么兩次握手不安全

為了實(shí)現(xiàn)可靠數(shù)據(jù)傳輸, TCP 協(xié)議的通信雙方斗这, 都必須維護(hù)一個(gè)序列號(hào)动猬, 以標(biāo)識(shí)發(fā)送出去的數(shù)據(jù)包中, 哪些是已經(jīng)被對(duì)方收到的表箭。 三次握手的過程即是通信雙方相互告知序列號(hào)起始值赁咙, 并確認(rèn)對(duì)方已經(jīng)收到了序列號(hào)起始值的必經(jīng)步驟

如果只是兩次握手, 至多只有連接發(fā)起方的起始序列號(hào)能被確認(rèn)燃逻, 另一方選擇的序列號(hào)則得不到確認(rèn)

9序目,為什么TCP是可靠的,UDP早不可靠的?為什么UDP比TCP快?

TCP/IP協(xié)議擁有三次握手雙向機(jī)制伯襟,這一機(jī)制保證校驗(yàn)了數(shù)據(jù)猿涨,保證了他的可靠性。

UDP就沒有了姆怪,udp信息發(fā)出后,不驗(yàn)證是否到達(dá)對(duì)方,所以不可靠叛赚。

10,Http的get和post的區(qū)別

http是應(yīng)用層的協(xié)議稽揭,底層基于TCP/IP協(xié)議俺附,所以本質(zhì)上,get和post請(qǐng)求都是TCP請(qǐng)求溪掀。所以二者的區(qū)別都是體現(xiàn)在應(yīng)用層上(HTTP的規(guī)定和瀏覽器/服務(wù)器的限制)

1.參數(shù)的傳輸方式:GET參數(shù)通過URL傳遞事镣,POST放在Request body中。

2.GET請(qǐng)求在URL中傳送的參數(shù)是有長度限制的揪胃,而POST沒有璃哟。

3.對(duì)于GET方式的請(qǐng)求,瀏覽器會(huì)把http header和data一并發(fā)送出去喊递,服務(wù)器響應(yīng)200(返回?cái)?shù)據(jù))随闪;而對(duì)于POST,瀏覽器先發(fā)送header骚勘,服務(wù)器響應(yīng)100 continue铐伴,瀏覽器再發(fā)送data,服務(wù)器響應(yīng)200 ok(返回?cái)?shù)據(jù))俏讹。不過要注意当宴,并不是所有瀏覽器都會(huì)在POST中發(fā)送兩次包,比如火狐

4.對(duì)參數(shù)的數(shù)據(jù)類型泽疆,GET只接受ASCII字符即供,而POST沒有限制。

5.GET比POST更不安全于微,因?yàn)閰?shù)直接暴露在URL上逗嫡,所以不能用來傳遞敏感信息青自。

6.GET請(qǐng)求只能進(jìn)行url編碼,而POST支持多種編碼方式驱证。

7.GET在瀏覽器回退時(shí)是無害的延窜,而POST會(huì)再次提交請(qǐng)求。

8.GET產(chǎn)生的URL地址可以被Bookmark抹锄,而POST不可以逆瑞。

9.GET請(qǐng)求會(huì)被瀏覽器主動(dòng)cache,而POST不會(huì)伙单,除非手動(dòng)設(shè)置获高。

11,socket和http的區(qū)別

Http協(xié)議:簡單的對(duì)象訪問協(xié)議吻育,對(duì)應(yīng)于應(yīng)用層念秧。Http協(xié)議是基于TCP鏈接的。

tcp協(xié)議:對(duì)應(yīng)于傳輸層

ip協(xié)議:對(duì)應(yīng)與網(wǎng)絡(luò)層

TCP/IP是傳輸層協(xié)議布疼,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸摊趾;而Http是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)游两。

Socket是對(duì)TCP/IP協(xié)議的封裝砾层,Socket本身并不是協(xié)議,而是一個(gè)調(diào)用接口(API)贱案,通過Socket肛炮,我們才能使用TCP/IP協(xié)議。

Http連接:http連接就是所謂的短連接宝踪,及客戶端向服務(wù)器發(fā)送一次請(qǐng)求侨糟,服務(wù)器端相應(yīng)后連接即會(huì)斷掉。

socket連接:socket連接及時(shí)所謂的長連接肴沫,理論上客戶端和服務(wù)端一旦建立連接粟害,則不會(huì)主動(dòng)斷掉蕴忆;但是由于各種環(huán)境因素可能會(huì)是連接斷開颤芬,比如說:服務(wù)器端或客戶端主機(jī)down了,網(wǎng)絡(luò)故障套鹅,或者兩者之間長時(shí)間沒有數(shù)據(jù)傳輸站蝠,網(wǎng)絡(luò)防火墻可能會(huì)斷開該鏈接已釋放網(wǎng)絡(luò)資源。所以當(dāng)一個(gè)socket連接中沒有數(shù)據(jù)的傳輸卓鹿,那么為了位置連續(xù)的連接需要發(fā)送心跳消息菱魔,具體心跳消息格式是開發(fā)者自己定義的。

12吟孙,描述一次網(wǎng)絡(luò)請(qǐng)求的流程

1)域名解析

瀏覽器會(huì)先搜索自身DNS緩存且對(duì)應(yīng)的IP地址沒有過期澜倦;若未找到則搜索操作系統(tǒng)自身的DNS緩存聚蝶;若還未找到則讀本地的hotsts文件;還未找到會(huì)在TCP/IP設(shè)置的本地DNS服務(wù)器上找藻治,如果要查詢的域名在本地配置的區(qū)域資源中碘勉,則完成解析;否則根據(jù)本地DNS服務(wù)器會(huì)請(qǐng)求根DNS服務(wù)器桩卵;根DNS服務(wù)器是13臺(tái)根DNS验靡,會(huì)一級(jí)一級(jí)往下找。

2)TCP三次握手

客戶端先發(fā)送SYN=1雏节,ACK=0胜嗓,序列號(hào)seq=x報(bào)文;(SYN在連接建立時(shí)用來同步序號(hào)钩乍,SYN=1辞州,ACK=0代表這是一個(gè)連接請(qǐng)求報(bào)文,對(duì)方若同意建立連接件蚕,則應(yīng)在響應(yīng)報(bào)文中使SYN=1孙技,ACK=1)

服務(wù)器返回SYN=1,ACK=1排作,seq=y, ack=x+1牵啦;

客戶端再一次確認(rèn),但不用SYN了妄痪,回復(fù)服務(wù)端, ACK=1, seq=x+1, ack=y+1

3)建立TCP連接后發(fā)起HTTP請(qǐng)求

客戶端按照指定的格式開始向服務(wù)端發(fā)送HTTP請(qǐng)求哈雏,HTTP請(qǐng)求格式由四部分組成,分別是請(qǐng)求行衫生、請(qǐng)求頭裳瘪、空行、消息體罪针,服務(wù)端接收到請(qǐng)求后彭羹,解析HTTP請(qǐng)求,處理完成邏輯泪酱,最后返回一個(gè)具有標(biāo)準(zhǔn)格式的HTTP響應(yīng)給客戶端派殷。

4)服務(wù)器響應(yīng)HTTP請(qǐng)求

服務(wù)器接收處理完請(qǐng)求后返回一個(gè)HTTP響應(yīng)消息給客戶端,HTTP響應(yīng)信息格式包括:狀態(tài)行墓阀、響應(yīng)頭毡惜、空行、消息體

5)瀏覽器解析HTML代碼斯撮,請(qǐng)求HTML代碼中的資源

瀏覽器拿到html文件后经伙,就開始解析其中的html代碼,遇到j(luò)s/css/image等靜態(tài)資源時(shí)勿锅,向服務(wù)器發(fā)起一個(gè)http請(qǐng)求帕膜,如果返回304狀態(tài)碼枣氧,瀏覽器會(huì)直接讀取本地的緩存文件。否則開啟線程向服務(wù)器請(qǐng)求下載垮刹。

6)瀏覽器對(duì)頁面進(jìn)行渲染并呈現(xiàn)給用戶

7)TCP的四次揮手

當(dāng)客戶端沒有東西要發(fā)送時(shí)就要釋放連接(提出中斷連接可以是Client也可以是Server)作瞄,客戶端會(huì)發(fā)送一個(gè)FIN=1的沒有數(shù)據(jù)的報(bào)文,進(jìn)入FIN_WAIT狀態(tài)危纫,服務(wù)端收到后會(huì)給客戶端一個(gè)確認(rèn)宗挥,此時(shí)客戶端不能發(fā)送數(shù)據(jù),但可接收信息种蝶。

13契耿,Http位于TCP/IP 模型中的第幾層?為什么說Http是可靠的數(shù)據(jù)傳輸協(xié)議螃征?

TCP/IP 的五層模型:

從下到上:物理層-數(shù)據(jù)鏈路層-網(wǎng)絡(luò)層-傳輸層-應(yīng)用層

其中Tcp/ip 位于模型中的網(wǎng)絡(luò)層搪桂,處于同一層的還有ICMP(網(wǎng)絡(luò)控制信息協(xié)議),http位于模型中的應(yīng)用層

由于tcp/ip是面向鏈接的可靠協(xié)議盯滚,而http是在傳輸層基于tcp/ip西儀的踢械,所以說http也是可靠的數(shù)據(jù)傳輸協(xié)議

14,http魄藕,https的區(qū)別

此處延伸:https的實(shí)現(xiàn)原理

1内列、https協(xié)議需要到ca申請(qǐng)證書,一般免費(fèi)證書較少背率,因而需要一定費(fèi)用话瞧。

2、http是超文本傳輸協(xié)議寝姿,信息是明文傳輸交排,https則是具有安全性的ssl加密傳輸協(xié)議。

3饵筑、http和https使用的是完全不同的連接方式埃篓,用的端口也不一樣,前者是80根资,后者是443架专。

4、http的連接很簡單嫂冻,是無狀態(tài)的胶征;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸塞椎、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議桨仿,比http協(xié)議安全。

https實(shí)現(xiàn)原理:

(1)客戶使用https的URL訪問Web服務(wù)器案狠,要求與Web服務(wù)器建立SSL連接服傍。

(2)Web服務(wù)器收到客戶端請(qǐng)求后钱雷,會(huì)將網(wǎng)站的證書信息(證書中包含公鑰)傳送一份給客戶端。

(3)客戶端的瀏覽器與Web服務(wù)器開始協(xié)商SSL連接的安全等級(jí)吹零,也就是信息加密的等級(jí)罩抗。

(4)客戶端的瀏覽器根據(jù)雙方同意的安全等級(jí),建立會(huì)話密鑰灿椅,然后利用網(wǎng)站的公鑰將會(huì)話密鑰加密套蒂,并傳送給網(wǎng)站。

(5)Web服務(wù)器利用自己的私鑰解密出會(huì)話密鑰茫蛹。

(6)Web服務(wù)器利用會(huì)話密鑰加密與客戶端之間的通信操刀。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市婴洼,隨后出現(xiàn)的幾起案子骨坑,更是在濱河造成了極大的恐慌,老刑警劉巖柬采,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欢唾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡粉捻,警方通過查閱死者的電腦和手機(jī)礁遣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肩刃,“玉大人亡脸,你說我怎么就攤上這事∈骼遥” “怎么了浅碾?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長续语。 經(jīng)常有香客問我垂谢,道長,這世上最難降的妖魔是什么疮茄? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任滥朱,我火速辦了婚禮,結(jié)果婚禮上力试,老公的妹妹穿的比我還像新娘徙邻。我一直安慰自己,他們只是感情好畸裳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布缰犁。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪帅容。 梳的紋絲不亂的頭發(fā)上颇象,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音并徘,去河邊找鬼遣钳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛麦乞,可吹牛的內(nèi)容都是我干的蕴茴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼姐直,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼荐开!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起简肴,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤晃听,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后砰识,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體能扒,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年辫狼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了初斑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡膨处,死狀恐怖见秤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情真椿,我是刑警寧澤鹃答,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站突硝,受9級(jí)特大地震影響测摔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜解恰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一锋八、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧护盈,春花似錦挟纱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽檀轨。三九已至,卻和暖如春围苫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撤师。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人富腊。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓琉朽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親痒谴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子衰伯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353