理解網(wǎng)絡(luò)傳輸(一)

引言

上網(wǎng)如此簡單蒸甜。如果不出所料的話客情,你已經(jīng)掌握了如何利用網(wǎng)絡(luò)來搜索有用的消息了鹰服,不然你就看不到這篇精彩的文章了

一般來說,我們想要在網(wǎng)上獲取某些信息嗦玖,只需要在瀏覽器上敲個網(wǎng)址,不出一會随常,我們就會收到來自服務(wù)器端的信息掩蛤。假如你未曾學(xué)過計算機,你甚至可能不知道服務(wù)器的存在干花。即使你學(xué)過計算機妄帘,在實際的開發(fā)中,你也只需要調(diào)用socket接口發(fā)起請求池凄,返回響應(yīng)就可以了

其實我想說抡驼,計算機網(wǎng)絡(luò)被隱藏地太好了,再加上它看不見摸不著肿仑,其中的細(xì)節(jié)很容易被我們所忽略致盟。所以我常常喜歡稱網(wǎng)絡(luò)為熟悉的陌生人

網(wǎng)絡(luò)如此復(fù)雜。假如尤慰,我現(xiàn)在問你HTTP馏锡、TCP/IP協(xié)議是什么?數(shù)據(jù)在傳輸?shù)倪^程中逐步經(jīng)歷了什么伟端?Socket到底是個什么東西杯道?成百上千的信息如何做到有條不紊的傳輸?shù)模咳绾巫龅礁咝鬏斃笥荆靠蛻舳伺c服務(wù)端又是如何配合的蕉饼?如何搞定網(wǎng)絡(luò)安全?這些你能回答到幾個呢?不要著急玛歌,這些問題我會在下面的文章中進行講解

在講解之前昧港,我先將網(wǎng)絡(luò)的傳輸過程進行細(xì)分,大致可以分為三個階段:客戶端請求階段支子、網(wǎng)線傳輸階段创肥、服務(wù)端響應(yīng)階段。因為網(wǎng)線傳輸階段不是軟件開發(fā)中的重點值朋,所以我會弱化網(wǎng)線傳輸?shù)闹v解叹侄,挑客戶端請求階段和服務(wù)器端兩點進行詳細(xì)地說明。那么現(xiàn)在讓我們開始吧

瀏覽器生成消息

這個小節(jié)總共有5個看點:

  • 瀏覽器如何解析網(wǎng)址

  • HTTP請求消息長啥樣

  • 如何通過域名解析獲取IP地址

  • 全世界DNS是如何配合的

  • 委托協(xié)議棧發(fā)送消息到底是如何完成的

生成HTTP請求消息

訪問網(wǎng)站的第一件事情是先在瀏覽器中輸入URL地址昨登。我們就以百度為例 http://www.baidu.com

將網(wǎng)址拆分成兩部分趾代,分別是"http://"和"www.baidu.com",這兩部分分別代表訪問協(xié)議服務(wù)器域名

協(xié)議

瀏覽器除了支持HTTP協(xié)議外丰辣,還支持“ FTP:”“ FILE:”“ MAILTO:”協(xié)議撒强,這部分文字都表示瀏覽器應(yīng)使用的訪問方法禽捆。比如,當(dāng)訪問Web服務(wù)器時飘哨,應(yīng)該使用HTTP協(xié)議胚想,而訪問FTP服務(wù)器時則應(yīng)該使用FTP協(xié)議。

網(wǎng)絡(luò)協(xié)議是什么呢芽隆?百度百科上的解釋是:網(wǎng)絡(luò)協(xié)議是為計算機網(wǎng)絡(luò)中的數(shù)據(jù)進行交換而建立的規(guī)則浊服、標(biāo)準(zhǔn)或約定的集合。對胚吁,沒錯牙躺,就是規(guī)則和約定。最簡單的協(xié)議囤采,比如說述呐,我們過馬路要遵守交通規(guī)則,否則就有可能發(fā)生意外蕉毯。那為什么要建立交通規(guī)則呢乓搬?因為我們需要對馬路上的車輛和人流(范圍)進行管理,使得每個人都能安全的通過馬路(目的)代虾。

現(xiàn)在你能說出為什么需要網(wǎng)絡(luò)協(xié)議了嗎进肯?是為了能夠進行數(shù)據(jù)交換(目的)而制定的規(guī)則,保證(管理)不同類型的數(shù)據(jù)能夠以各種方式準(zhǔn)確、高效的傳到你的電腦上棉磨。

協(xié)議的類型有很多:比如江掩,HTTP協(xié)議是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議;FTP是網(wǎng)絡(luò)共享文件的傳輸協(xié)議乘瓤;MAILTO是一個用于發(fā)送郵件的URL協(xié)議环形;FILE協(xié)議用于訪問本地計算機中的文件的協(xié)議

這樣說可能還是有點抽象,沒關(guān)系衙傀,那么我們就以HTTP協(xié)議為例子抬吟,講解一下協(xié)議到底是個什么東西吧。協(xié)議總歸是有內(nèi)容的吧统抬,比如交通規(guī)則是紅燈停與綠燈行火本,紅燈和綠燈是一個信號,用來告訴你的大腦現(xiàn)在該干什么了聪建。不過钙畔,HTTP協(xié)議的規(guī)定可不只兩個哦,可以按照實際請求的需要往HTTP請求消息里面添加金麸。

大家應(yīng)該都知道HTTP請求消息包括請求行擎析、請求頭、請求體吧挥下,見下圖叔锐。

HTTP請求消息.jpg

請求頭和請求體都是控制信息挪鹏,請求體才是真正的內(nèi)容见秽。其實電腦就像我們的大腦愉烙,只不過這個大腦把他的智商兌換成了它的處理速度。電腦只做三件事情解取,分別是:輸入步责,處理請求,響應(yīng)禀苦。我們來分析一下電腦解析下面這段請求消息的過程吧:電腦會先按照換行符把請求消息劃分為三個部分蔓肯,然后依次讀取到請求行、請求頭的信息振乏,服務(wù)程序再根據(jù)請求行和請求頭的控制信息對請求體進行相應(yīng)的處理蔗包,生成對應(yīng)的響應(yīng)信息。總結(jié)起來慧邮,HTTP請求消息就是我們?nèi)藶榈囊?guī)定了一些字段调限,計算機接收到信號之后(紅綠燈),按照HTTP協(xié)議規(guī)定的方式去處理(停误澳、走耻矮、發(fā)生錯誤),從而達(dá)到傳輸超文本的目的

請求頭.png

理解協(xié)議是很關(guān)鍵的一環(huán)忆谓,下面會大量提到協(xié)議裆装,所以我盡量通俗的講解協(xié)議,花了很多筆墨倡缠,接下來講一下域名

域名

互聯(lián)網(wǎng)是一張大網(wǎng)哨免,在互聯(lián)網(wǎng)上有上億的計算機通過網(wǎng)絡(luò)連接,如何確定我要訪問的是哪一臺計算機昙沦?對琢唾,你說得沒錯,是通過IP去找的桅滋,所以如何找是通過IP協(xié)議規(guī)定的慧耍。IP協(xié)議僅僅是能夠幫你定位到這臺主機在互聯(lián)網(wǎng)的位置,如何進行連接就需要使用到TCP協(xié)議了丐谋。這就是我們常常掛在嘴邊的TCP/IP協(xié)議了芍碧。這里要注意一點的是,TCP是傳輸層的協(xié)議号俐,而IP是網(wǎng)絡(luò)層的協(xié)議泌豆,這兩個協(xié)議是兩個層的代表,所以我們常說的TCP/IP協(xié)議是一個協(xié)議族吏饿。

再介紹TCP/IP協(xié)議之前踪危,我先簡單的引入網(wǎng)絡(luò)層次結(jié)構(gòu)的概念蔬浙,見下圖:

TCP&IP五層模型.jpg

不同的網(wǎng)絡(luò)層次只負(fù)責(zé)自己分內(nèi)的工作,處理完了自己的工作后贞远,就把這個工作交給其他人繼續(xù)完成畴博。好了,先說到這里蓝仲,更多的知識我們接下來很快就會講到俱病,我們回到主線:域名解析與IP

IP寫出來是一個數(shù)字串,數(shù)字的設(shè)計是為了讓人們更加高效的找到他們要訪問的主機袱结。如果要拿什么作類比的話亮隙,就像學(xué)生的學(xué)號,你不可能用名字來識別學(xué)校里的每一個學(xué)生垢夹,所以如果你想快速地找到某個人溢吻,那么最高效的方式就是查學(xué)號,然后得到這個人的所有信息果元。

網(wǎng)絡(luò)中總共有約42億個地址促王,合理的分類和規(guī)劃就顯得非常重要。我們國家有14億人口噪漾,你想想看硼砰,你的身份證號是如何編碼的?有哪幾部分組成欣硼?像身份證就能唯一表示你這個人题翰。為了方便管理,IP地址被人為地分成了A類地址诈胜、B類地址豹障、C類地址,每一個IP又有網(wǎng)路號和主機號構(gòu)成焦匈。像有些大公司里面可能需要一個能夠接入很多電腦的IP血公,那么他就要申請一個A類地址的IP。一個IP最多可以接入16,777,214臺電腦(A類地址)缓熟,最少可以接入254臺電腦(C類地址)累魔。

IP地址的分類.jpg

IPv4當(dāng)初設(shè)計的時候只是為了實驗,只有2^32個地址够滑。但是隨著現(xiàn)在PC垦写、網(wǎng)絡(luò)設(shè)備和移動設(shè)備越來越多,需要的IP地址也越來越多彰触,所以IPv4的地址資源已經(jīng)枯竭梯投,而IPv6又沒有開始普及,所以只能盡量節(jié)省地址。比如定義了私有地址分蓖、開發(fā)了NAT技術(shù)以及子網(wǎng)劃分等尔艇。

私有地址與NAT技術(shù)

我相信不會有人會去申請不夠用的IP,但是會發(fā)生申請到的IP存在浪費的情況么鹤。比如终娃,這是一個小公司,存在一個公司需要接入的電腦還不足256臺的情況午磁。為了有效利用ip地址尝抖,這個時候我們就可以根據(jù)情況將一個IP劃分成幾個子網(wǎng),分配給這個公司的子公司使用迅皇。

子網(wǎng)劃分的兩個例子

大致了解了IP的概念,我們開始講重頭戲:域名解析衙熔。IP雖然高效登颓,但是帶來一個問題,那就是IP太難記了红氯,于是我們就想了一個辦法框咙,那就是域名解析。有了域名解析服務(wù)之后痢甘,我們既可以用域名也可以用IP訪問網(wǎng)站了喇嘱。域名解析的含義就是將域名映射成IP的過程。域名如果不經(jīng)過轉(zhuǎn)換塞栅,是無法直接用于訪問的者铜。你可能很好奇吧,好端端的一個域名www.baidu.com是如何變成http://112.80.248.76/的呢放椰?

域名服務(wù)器在其中發(fā)揮了重要的作用作烟。在瀏覽器發(fā)起請求之前,會先向域名服務(wù)器發(fā)起請求砾医,返回相應(yīng)的要訪問的服務(wù)器的IP地址拿撩。有了域名對應(yīng)的IP地址后,就可以向目標(biāo)服務(wù)器發(fā)起請求了如蚜。

簡單理解就是這么個過程压恒,但我們的目標(biāo)不僅于此。DNS服務(wù)器中的所有信息都是按照域名错邦,分層次保存的探赫。一個層級的部分稱為域。以百度為例兴猩,www.baidu.com是一個域名期吓,它由三部分組成,以'.'號進行分隔,從右往左分別為一級域名com,二級域名baidu讨勤,三級域名www箭跳。在一級域名之前有一個根源,根域是最高的域潭千,用一個點來表示谱姓,一般可以省略。根域的DNS服務(wù)器中保管著com刨晴、jp等的DNS服務(wù)器的IP信息屉来。根域服務(wù)器在全世界上只存在13個。而且根域的地址幾乎不發(fā)生變化狈癞,因此將這些地址保存在所有的DNS服務(wù)器中也并不是一件難事

解析的具體過程茄靠。首先,將負(fù)責(zé)管理下級域的DNS服務(wù)器的IP地址注冊到它們的上級DNS服務(wù)器中蝶桶,然后上級DNS服務(wù)器的IP地址再注冊到更上一級的DNS服務(wù)器中慨绳,以此類推。也就是說真竖,負(fù)責(zé)管理www.baidu.com這個域的DNS服務(wù)器的IP地址需要注冊到baidu.com域的DNS服務(wù)器中脐雪,而baidu.com域的DNS服務(wù)器的IP地址又需要注冊到com域的DNS服務(wù)器中。這樣恢共,我們就可以通過上級DNS服務(wù)器查詢出下級DNS服務(wù)器的IP地址战秋,也就可以向下級DNS服務(wù)器發(fā)送查詢請求了

用百度舉個例子。從你的電腦出發(fā)讨韭,域名首先會發(fā)往離你最近的域名解析服務(wù)器脂信,最近的域名解析服務(wù)器如果沒有找到該域名的緩存,那么該域名服務(wù)器就會把域名發(fā)給根域服務(wù)器拐袜。補充一點吉嚣,根域服務(wù)器存在于與任何一臺域名服務(wù)器上。因為根域服務(wù)器只有13個蹬铺,所以任何一臺根域服務(wù)器都能輕易存儲尝哆。最近的根域服務(wù)器會返回他管轄的最近的com域服務(wù)器的IP。你的電腦收到最近的com域服務(wù)器的IP后甜攀,會將域名發(fā)給最近的com域服務(wù)器秋泄,com域服務(wù)器會返回他管轄的baidu.com域服務(wù)器的IP地址。最后规阀,你的電腦繼續(xù)把域名發(fā)給最近的baidu.com域服務(wù)器恒序,返回www.baidu.com的域名服務(wù)器。你的電腦收到收到這個域名服務(wù)器的ip后谁撼,判斷這就是我想要的域名IP歧胁,接著瀏覽器就會向這個IP地址發(fā)送HTTP請求。

域名解析.png

域名解析到此結(jié)束。接下來喊巍,我們將正式向客戶端發(fā)送消息了屠缭。

瀏覽器委托操作系統(tǒng)發(fā)送消息

還記得我們前面說得計算機層級結(jié)構(gòu)嗎? HTTP協(xié)議與DNS協(xié)議都位于應(yīng)用層。像TCP協(xié)議規(guī)定了如何可靠的傳輸崭参、IP協(xié)議規(guī)定了如何快速地找到目的主機呵曹,分別位于傳輸層與網(wǎng)絡(luò)層。層次從上而下就好比我們一步一步的解決問題何暮。我們通過使用HTTP協(xié)議控制客戶端與服務(wù)端之間的超文本傳輸奄喂,要傳輸就要建立可靠連接(TCP),建立連接后就要高效的定位主機(IP)海洼,由上而下跨新,分別對應(yīng)了應(yīng)用層、傳輸層贰军、網(wǎng)絡(luò)層玻蝌。如果要做個類比的話,應(yīng)用層之下的層級好比一顆樹的樹干,應(yīng)用層好比是樹的樹枝词疼。樹枝向四處發(fā)展,每個樹枝都有自己獨特的地方帘腹,但是每個樹枝都依靠同樣的一根樹干去傳輸養(yǎng)分贰盗。這好比應(yīng)用層的協(xié)議,它基于應(yīng)用層之下的各層阳欲,為了實現(xiàn)一個特定應(yīng)用功能舵盈,從而規(guī)定和控制信息的傳輸。像HTTP協(xié)議可以控制超文本傳輸過程球化、FTP協(xié)議可以控制文件的傳輸過程秽晚、MAILTO可以控制郵件傳輸過程,DNS協(xié)議控制域名與IP的傳輸過程筒愚。網(wǎng)絡(luò)層次中的每一層都依賴下一層赴蝇,下一層對上一層提供服務(wù),這是層次結(jié)構(gòu)的精髓

我們已經(jīng)講了HTTP和DNS這樣的應(yīng)用層了巢掺,接下來我們講TCP的傳輸層句伶。

在講之前,我們先把數(shù)據(jù)包從瀏覽器到網(wǎng)卡經(jīng)過的路徑先捋一下

  1. 域名解析流程陆淀。對于DNS服務(wù)器考余,我們的計算機上一定有相應(yīng)的DNS客戶端,而相當(dāng)于DNS客戶端的部分稱為DNS解析器轧苫,或者簡稱解析器楚堤。解析器實際上是一段程序,它包含在操作系統(tǒng)的Socket庫中。庫就是一堆通用程序組件的集合身冬,其他的應(yīng)用程序都需要使用其中的組件衅胀。Socket庫也是一種庫,其中包含的程序組件可以讓其他的應(yīng)用程序調(diào)用操作系統(tǒng)的網(wǎng)絡(luò)功能吏恭。但我們輸入網(wǎng)址拗小,按下回車,瀏覽器就會調(diào)用解析器樱哼。響應(yīng)消息中包含查詢到的IP地址哀九,解析器會取出IP 地址,并將其寫入瀏覽器指定的內(nèi)存地址中搅幅。

瀏覽器內(nèi)部偽代碼如下:

   <應(yīng)用程序名>(<參數(shù)>)
   {   .... 
    .... 
    <內(nèi)存地址> = gethostbyname("www.baidu.com"); 
    .... 
    ....
    <發(fā)送HTTP消息> 
    .... 
   }
調(diào)用解析器時計算機內(nèi)部的工作流程 .png
  1. 什么是協(xié)議棧阅束。協(xié)議棧是操作系統(tǒng)內(nèi)部的網(wǎng)絡(luò)控制軟件,也叫“協(xié)議驅(qū)動”“TCP/IP 驅(qū)動”等茄唐。是真正處理網(wǎng)絡(luò)收發(fā)過程的軟件息裸。這是因為和瀏覽器一樣,解析器本身也不具備使用網(wǎng)絡(luò)收發(fā)數(shù)據(jù)的功能沪编。解析器調(diào)用協(xié)議棧后呼盆,控制流程會再次轉(zhuǎn)移,協(xié)議棧會執(zhí)行發(fā)送消息的操作蚁廓,然后通過網(wǎng)卡將消息發(fā)送給DNS服務(wù)器访圃。計算機的內(nèi)部結(jié)構(gòu)就是這樣一層一層的。也就是說相嵌,很多程序組成不同的層次腿时,彼此之間分工協(xié)作。當(dāng)接到上層委派的操作時饭宾,本層的程序并 不會完成所有的工作批糟,而是會完成一部分工作,再將剩下的部分委派到下 層來完成看铆。

  2. 委托協(xié)議棧發(fā)送消息徽鼎。瀏覽器程序得到IP后就要調(diào)用協(xié)議棧來收發(fā)數(shù)據(jù)了。要發(fā)送給Web服務(wù)器的HTTP消息是一種數(shù)字信息性湿, 因此也可以說是委托協(xié)議 棧來發(fā)送數(shù)字信息纬傲。收發(fā)數(shù)字信息這一操作不僅限于瀏覽器,對于各種使用網(wǎng)絡(luò)的應(yīng)用程序來說都是共通的肤频。因此叹括,這一操作的過程也不僅適用于 Web,而是適用于任何網(wǎng)絡(luò)應(yīng)用程序宵荒。收發(fā)數(shù)據(jù)的操作分為若干個階段汁雷,可以大致總結(jié)為以下4個:

    • 創(chuàng)建套接字(創(chuàng)建套接字階段)

    • 將管道連接到服務(wù)器端的套接字上(連接階段)

    • 收發(fā)數(shù)據(jù)(通信階段)

    • 斷開管道并刪除套接字(斷開階段)

    協(xié)議棧會調(diào)用Socket庫中的程序組件去執(zhí)行相關(guān)的數(shù)據(jù)收發(fā)操作净嘀。為了顯得內(nèi)容不那么繁雜,關(guān)于Socket套接字我會在下一篇文章講TCP/IP的時候具體講吧侠讯。

  3. 協(xié)議棧委托網(wǎng)卡發(fā)送數(shù)據(jù)挖藏。協(xié)議棧的上半部分有兩塊,分別是負(fù)責(zé)用TCP協(xié)議收發(fā)數(shù)據(jù)的部分和負(fù)責(zé)用UDP協(xié)議收發(fā)數(shù)據(jù)的部分厢漩,它們會接受應(yīng)用程序的委托執(zhí)行收發(fā)數(shù)據(jù)的操作膜眠。下面一半是用IP協(xié)議控制網(wǎng)絡(luò)包收發(fā)操作的部分。在互聯(lián)網(wǎng)上傳送數(shù)據(jù)時溜嗜,數(shù)據(jù)會被切分成一個一個的網(wǎng)絡(luò)包 宵膨,而將網(wǎng)絡(luò)包發(fā)送給通信對象的操作就是由IP來負(fù)責(zé)的。此外炸宵,IP 中還包括ICMP協(xié)議和ARP協(xié)議辟躏。 ICMP用于告知網(wǎng)絡(luò)包傳送過程中產(chǎn)生的錯誤以及各種控制消息,ARP用于根據(jù)IP地址查詢相應(yīng)的以太網(wǎng)MAC地址(鏈路層)土全。 IP下面的網(wǎng)卡驅(qū)動程序負(fù)責(zé)控制網(wǎng)卡硬件捎琐,而最下面的網(wǎng)卡則負(fù)責(zé)完成實際的收發(fā)操作,也就是對網(wǎng)線中的信號執(zhí)行發(fā)送和接收的操作裹匙。

TCP&IP軟件采用分層結(jié)構(gòu).png
  1. 網(wǎng)卡出去進入互聯(lián)網(wǎng)瑞凑。因為不是簡介的重點,我就講一下這一步的流程概页。以家庭上網(wǎng)為例拨黔。第一步需要通過PPP協(xié)議驗證密碼。電信號從網(wǎng)卡出去绰沥,到達(dá)你家里的路由器,路由器通過接入網(wǎng)(如光纖)到達(dá)運營商贺待,運營商自動給你的路由器分配一個公網(wǎng)IP和DNS服務(wù)器地址徽曲;第二步,使用外網(wǎng)IP對數(shù)據(jù)包進行封裝麸塞,從而使得數(shù)據(jù)包能在互聯(lián)網(wǎng)上傳輸秃臣,其實運營商的網(wǎng)絡(luò)也是以路由器為核心組成的,運營商之間的相互通信就構(gòu)成了核心網(wǎng)絡(luò)哪工。我們的數(shù)據(jù)包在核心網(wǎng)絡(luò)里可以被轉(zhuǎn)發(fā)到世界上任何一個主機上奥此。于是,你就可以訪問世界上任何一臺主機了雁比。

該文章參考了戶根勤的《網(wǎng)絡(luò)是怎樣連接的》

如果文章存在一些錯誤稚虎,還望指出,我會虛心接受的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末偎捎,一起剝皮案震驚了整個濱河市蠢终,隨后出現(xiàn)的幾起案子序攘,更是在濱河造成了極大的恐慌,老刑警劉巖寻拂,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件程奠,死亡現(xiàn)場離奇詭異,居然都是意外死亡祭钉,警方通過查閱死者的電腦和手機瞄沙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慌核,“玉大人距境,你說我怎么就攤上這事∷煺。” “怎么了肮疗?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扒接。 經(jīng)常有香客問我伪货,道長,這世上最難降的妖魔是什么钾怔? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任碱呼,我火速辦了婚禮,結(jié)果婚禮上宗侦,老公的妹妹穿的比我還像新娘愚臀。我一直安慰自己,他們只是感情好矾利,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布姑裂。 她就那樣靜靜地躺著,像睡著了一般男旗。 火紅的嫁衣襯著肌膚如雪舶斧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天察皇,我揣著相機與錄音茴厉,去河邊找鬼。 笑死什荣,一個胖子當(dāng)著我的面吹牛矾缓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播稻爬,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼嗜闻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了因篇?” 一聲冷哼從身側(cè)響起泞辐,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤笔横,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后咐吼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吹缔,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年锯茄,在試婚紗的時候發(fā)現(xiàn)自己被綠了厢塘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡肌幽,死狀恐怖晚碾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喂急,我是刑警寧澤格嘁,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站廊移,受9級特大地震影響糕簿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜狡孔,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一懂诗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苗膝,春花似錦殃恒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至问窃,卻和暖如春侯繁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背泡躯。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留丽焊,地道東北人较剃。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像技健,于是被迫代替她去往敵國和親写穴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348