網(wǎng)絡(luò)是怎樣連接之瀏覽器的探索之旅讀書(shū)筆記(一)

照例是寫(xiě)在前面的話(huà)沼头,今天在這里想和自己說(shuō)一些話(huà),希望未來(lái)的自己能夠記住歹篓,就像我在簡(jiǎn)書(shū)的簽名里寫(xiě)下的瘫证,“希望自己能記得當(dāng)下寫(xiě)下那段文字的初心!”庄撮,學(xué)習(xí)其實(shí)是一件非常嚴(yán)肅的事情,它容不得半點(diǎn)馬虎和粗心毙籽,當(dāng)你在當(dāng)下去學(xué)習(xí)的時(shí)候洞斯,你應(yīng)該去做的事全心全意,專(zhuān)注的去做當(dāng)下的這件事坑赡,而不是又看電視烙如,有看書(shū),又在玩游戲毅否,因?yàn)槟憧雌饋?lái)在學(xué)習(xí)亚铁,其實(shí)是在表演!昨天晚上看了一篇脈脈分享的文章讓我感覺(jué)到很慚愧螟加,“打工”十年月薪7000徘溢,思維落后的努力都是瞎忙,其中有一個(gè)觀點(diǎn)是,如果你的勤奮只是流于表面捆探,只是為了炫耀與朋友圈然爆,只是為了做給領(lǐng)導(dǎo)看,那你就是假的勤奮黍图,這種表演式的勤奮并不能持續(xù)多久曾雕。其中一句話(huà)是"只有真正的勤奮才能改變一個(gè)人的命運(yùn),那些假勤奮的人看起來(lái)很風(fēng)光助被,其實(shí)達(dá)不到很高的高度剖张!"切诀,和大家共勉吧!啰嗦完畢搔弄,下面正式開(kāi)始幅虑。

這次寫(xiě)的文章是《網(wǎng)絡(luò)是怎樣連接的》讀書(shū)筆記,這本書(shū)真的是滿(mǎn)滿(mǎn)的干貨肯污,希望每一個(gè)程序員都應(yīng)該學(xué)習(xí)的一本書(shū)翘单,對(duì)這本書(shū),真的是相見(jiàn)恨晚蹦渣。我們這次記錄第一章的內(nèi)容哄芜,以后我會(huì)堅(jiān)持把這本書(shū)的所有讀書(shū)筆記都寫(xiě)完。

image
網(wǎng)絡(luò)是怎樣連接的腦圖.png

這張腦圖是我自己整理的柬唯,還不是很完善认臊,等把所有的章節(jié)讀完之后,會(huì)有一個(gè)整體的腦圖做出來(lái)锄奢,那一定很壯觀失晴!我們就按照這個(gè)腦圖上的章節(jié)開(kāi)始整理吧。本筆記中所有的圖都來(lái)至?xí)小?/p>

我們的探索之旅是從在瀏覽器中輸入一個(gè)網(wǎng)址開(kāi)始的拘央。那么我們就從第一步涂屁,網(wǎng)址開(kāi)始吧!

第一步:解析網(wǎng)址

網(wǎng)址它的另一個(gè)名字叫URL灰伟,全名叫:Uniform Resource Locator拆又,統(tǒng)一資源定位符。還有一個(gè)是URI栏账,全名叫Uniform Resource Identifier帖族,統(tǒng)一資源標(biāo)識(shí)符。他們兩個(gè)是什么關(guān)系呢挡爵?想必很多人都不清楚吧竖般。

URI叫統(tǒng)一資源表示符,是用字符串標(biāo)識(shí)某一互聯(lián)網(wǎng)資源茶鹃,而URL表示資源的地點(diǎn)(互聯(lián)網(wǎng)上所處的位置)涣雕。可見(jiàn)URLURI的子集前计。

我們可以看一下URL的各種格式:

URL的各種格式.png

這里我們簡(jiǎn)單的介紹一下URL的格式:

1.http,ftp,file,mailto,news這部分文字都表示瀏覽器應(yīng) 當(dāng)使用的訪問(wèn)方法:

比如當(dāng)訪問(wèn)Web 服務(wù)器時(shí)應(yīng)該使用HTTPA 協(xié)議胞谭,而
訪問(wèn)FTP服務(wù)器時(shí)則應(yīng)該使用FTP協(xié)議。因此男杈,我們可以把這部分理解為
訪問(wèn)時(shí)使用的協(xié)議類(lèi)型丈屹。盡管后面部分的寫(xiě)法各不相同,但開(kāi)頭部分的
內(nèi)容決定了后面部分的寫(xiě)法,因此并不會(huì)造成混亂旺垒。

2.user:password彩库,表示輸入的用戶(hù)名和密碼

3.www.glasscom.com,表示的訪問(wèn)的域名

4.:80是表示的端口號(hào)

5./dir/file1.html表示的訪問(wèn)的文件地址。

而在瀏覽器解析的時(shí)候是這樣的:

Web瀏覽器解析URL的過(guò)程.png

HTTP的基本思路

在解析完網(wǎng)址以后,我們已經(jīng)知道了想要訪問(wèn)的文件在哪里睁冬,這個(gè)時(shí)候就需要瀏覽器通過(guò)使用HTTP協(xié)議來(lái)訪問(wèn)瀏覽器:

HTTP協(xié)議定義了客戶(hù)端和服務(wù)器之間交互的消息內(nèi)容和步驟奸例,其基 本思路非常簡(jiǎn)單穆趴。首先,客戶(hù)端會(huì)向服務(wù)器發(fā)送請(qǐng)求消息。 請(qǐng)求 消息中包含的內(nèi)容是“對(duì)什么”和“進(jìn)行怎樣的操作”兩個(gè)部分。

其中“對(duì)什么”就是URI鳞仙,(上面說(shuō)的那個(gè)統(tǒng)一資源定位符)而“進(jìn)行怎樣的操作”就是方法,

方法表示需要讓 Web 服務(wù)器完成怎樣的工作笔时,其中典型的例子包括讀取URI表示的數(shù)據(jù)棍好、 將客戶(hù)端輸入的數(shù)據(jù)發(fā)送給URI表示的程序等。

Http的主要方法.png

那允耿,這里就是大家所熟悉的各種GET,POST,PUT等方法了借笙,具體方法的含義,我會(huì)在另一個(gè)筆記中進(jìn)行詳解较锡。

第二步:生成HTTP請(qǐng)求信息

對(duì)URL解析之后业稼,我們知道了Web服務(wù)器和域名,下面就應(yīng)該生成請(qǐng)求信息了蚂蕴。

我們看一下請(qǐng)求消息的格式:


Http消息的格式.png

請(qǐng)求消息:

第一行:請(qǐng)求行,通過(guò)這一行可以大致了解請(qǐng)求的內(nèi)容盼忌。
第二行:消息頭,每行包含一個(gè)頭字段,用于表示請(qǐng)求的附加信息掂墓。
第三行:消息體,包含客戶(hù)端向服務(wù)端發(fā)送的數(shù)據(jù)。

響應(yīng)消息:

第一行:狀態(tài)行
第二行:消息頭
第三行:消息體看成,包含服務(wù)器向客戶(hù)端發(fā)送的數(shù)據(jù)君编。

這里我們列舉一下HTTP中主要的頭字段:

Http的主要頭字段(1).png
Http主要頭字段(2).png
Http的主要頭字段(3).png

TODO:這里暫時(shí)先放在這里,后期在整理到別的專(zhuān)門(mén)的一篇里川慌。還有響應(yīng)消息的狀態(tài)碼吃嘿,這里也暫時(shí)欠缺吧

**注意:1 條請(qǐng)求消息中只能寫(xiě) 1 個(gè) URI。如果需要獲取多個(gè)文件梦重,必須 對(duì)每個(gè)文件單獨(dú)發(fā)送 1 條請(qǐng)求兑燥。 **

這里是HTTP消息示例:

HTTP消息示例.png
Http消息示例2.png
HTTP消息示例3.png

第三步:向DNS服務(wù)器查詢(xún)IP地址

說(shuō)起通過(guò)DNS服務(wù)器查詢(xún)IP地址,我們需要明白兩個(gè)概念琴拧,一個(gè)是IP降瞳,一個(gè)是DNS,

IP地址的基本知識(shí)

IP地址的基本思路

在網(wǎng)絡(luò)中,所有的設(shè)備都會(huì)被分配一個(gè)地址。這個(gè)地址就相當(dāng)于現(xiàn)實(shí) 中某條路上的“×× 號(hào) ×× 室”挣饥。 其中“號(hào)”對(duì)應(yīng)的號(hào)碼是分配給整個(gè)子 網(wǎng)的除师,而“室”對(duì)應(yīng)的號(hào)碼是分配給子網(wǎng)中的計(jì)算機(jī)的,這就是網(wǎng)絡(luò)中的 地址扔枫⊙淳郏“ 號(hào)”對(duì)應(yīng)的號(hào)碼稱(chēng)為網(wǎng)絡(luò)號(hào),“ 室”對(duì)應(yīng)的號(hào)碼稱(chēng)為主機(jī)號(hào)短荐,這個(gè) 地址的整體稱(chēng)為IP地址 倚舀。通過(guò)IE地址我們可以判斷出訪問(wèn)對(duì)象服務(wù)器的 位置,從而將消息發(fā)送到服務(wù)器忍宋。消息傳送的具體過(guò)程在后面的章節(jié)有詳 細(xì)講解痕貌,不過(guò)現(xiàn)在我們先簡(jiǎn)單了解一下。發(fā)送者發(fā)出的消息首先經(jīng)過(guò)子網(wǎng)
中的集線(xiàn)器 讶踪,轉(zhuǎn)發(fā)到距離發(fā)送者最近的路由器上芯侥。 接下來(lái), 路由器會(huì)根據(jù)消息的目的地判斷下一個(gè)路由器的位置乳讥,然后將消息發(fā)送 到下一個(gè)路由器柱查,即消息再次經(jīng)過(guò)子網(wǎng)內(nèi)的集線(xiàn)器被轉(zhuǎn)發(fā)到下一個(gè)路由 器。 前面的過(guò)程不斷重復(fù)云石,最終消息就被傳送到了目的地.

IP的基本思路.png
實(shí)際的IP地址

實(shí)際的IP地址是一串32比特的數(shù)字唉工,按照8比特為一組分成4組,分別用十進(jìn)制表示汹忠,然后再用圓點(diǎn)分開(kāi)淋硝。
這就是我們平常經(jīng)常見(jiàn)到的 IP 地址格式,但僅憑這一 串?dāng)?shù)字我們無(wú)法區(qū)分哪部分是網(wǎng)絡(luò)號(hào)宽菜,哪部分是主機(jī)號(hào)谣膳。
在 IP 地址的規(guī)則 中,網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)連起來(lái)總共是 32 比特铅乡,但這兩部分的具體結(jié)構(gòu)是不固
定的继谚。在組建網(wǎng)絡(luò)時(shí),用戶(hù)可以自行決定它們之間的分配關(guān)系阵幸,因此花履,我 們還需要另外的附加信息來(lái)表示 IP
地址的內(nèi)部結(jié)構(gòu)。

IP地址的表示方法.png

這一附加信息稱(chēng)為子網(wǎng)掩碼挚赊。子網(wǎng)掩碼的格式如1.10圖所示诡壁,是一 串與 IP 地址長(zhǎng)度相同的 32 比特?cái)?shù)字,其左邊一半都是 1荠割,右邊一半都是其中妹卿,子網(wǎng)掩碼為 1 的部分表示網(wǎng)絡(luò)號(hào),子網(wǎng)掩碼為 0 的部分表示主機(jī) 號(hào)。將子網(wǎng)掩碼按照和 IP 地址一樣的方式以每 8 比特為單位用圓點(diǎn)分組后 寫(xiě)在 IP 地址的右側(cè)纽帖,這就是圖 1.9(b)的方法宠漩。這種寫(xiě)法太長(zhǎng),我們也可 以把 1 的部分的比特?cái)?shù)用十進(jìn)制表示并寫(xiě)在 IP 地址的右側(cè)懊直,如圖 1.9(c) 所示扒吁。這兩種方式只是寫(xiě)法上的區(qū)別,含義是完全一樣的室囊。

IP地址的結(jié)構(gòu).png
主機(jī)號(hào)部分的比特全部為0則表示整個(gè)子網(wǎng)
主機(jī)號(hào)部分的比特全部為1則表示向子網(wǎng)上所有的設(shè)備發(fā)送包雕崩,及“廣播”。

關(guān)于子網(wǎng)掩碼非常不好理解融撞,可以看這里

為什么我們有了域名還會(huì)需要IP地址呢盼铁?

因?yàn)椋篢CP/IP網(wǎng)絡(luò)是通過(guò)IP地址來(lái)確定通信對(duì)象的,因此必須知道IP地址尝偎。

干嘛不用域名代替IP地址呢饶火?

機(jī)器在處理IP的時(shí)候要比處理域名要快的多,一個(gè)IP地址的長(zhǎng)度是32比特致扯,也就是4個(gè)字節(jié)肤寝,而域名最短也要幾十個(gè)字節(jié),甚至最長(zhǎng)255自己抖僵。也就是使用IP地址鲤看,只需要處理4自己數(shù)字。而域名則需要處理幾十個(gè)到255個(gè)自己耍群,這就增加了路由器的負(fù)擔(dān)义桂,傳送數(shù)據(jù)時(shí)也會(huì)花費(fèi)更多的時(shí)間。

域名是給人用的蹈垢,這樣好記慷吊,比如百度,而IP地址是給機(jī)器用的曹抬,這樣快罢浇!

應(yīng)該怎么查IP呢?通過(guò)Socket庫(kù)來(lái)查詢(xún)DNS服務(wù)器

這里有幾個(gè)概念:

什么是解析器沐祷?

計(jì)算機(jī)上負(fù)責(zé)調(diào)用一段程序來(lái)查詢(xún)DNS的客戶(hù)端叫DNS解析器,簡(jiǎn)稱(chēng)解析器攒岛。

什么是域名解析赖临?

通過(guò)DNS查詢(xún)IP地址的操作稱(chēng)為域名解析。

這一段程序在哪里呢灾锯?

在Socket庫(kù)里兢榨,Socket 庫(kù)是用于調(diào)用網(wǎng)絡(luò)功能的程序組件集合。

解析器的調(diào)用

解析器的調(diào)用方法.png

通過(guò)Socket庫(kù)中的代碼,調(diào)用gethostbyname吵聪,然后輸入域名參數(shù)凌那,就可以查詢(xún)到IP地址了

解析器的內(nèi)部原理

當(dāng)我們調(diào)用Socket庫(kù)中的gethostbyname方法時(shí),我們會(huì)生成一條消息吟逝,這條消息表示“請(qǐng)告訴我www.baidu.com的ip地址”帽蝶,并把這條消息通過(guò)網(wǎng)卡發(fā)送到DNS服務(wù)器中進(jìn)行查詢(xún),查詢(xún)到以后DNS服務(wù)器返回響應(yīng)的消息块攒;從響應(yīng)的消息中取出IP地址励稳,并存放到內(nèi)存地址中,接著返回應(yīng)用程序囱井。

調(diào)用解析器時(shí)計(jì)算機(jī)內(nèi)部的工作流程.png

這就是解析器的基本原理驹尼。

DNS服務(wù)器的基本工作

來(lái)自客戶(hù)端的查詢(xún)消息包含以下3種信息。

1:域名

服務(wù)器庞呕、郵件服務(wù)器(郵件地址中 @ 后面的部分)的名稱(chēng)

2:Class

在設(shè)置DNS方案時(shí)新翎,互聯(lián)網(wǎng)之外的網(wǎng)絡(luò)也考慮到了,而Class就是用來(lái)識(shí)別網(wǎng)絡(luò)的住练,不過(guò)現(xiàn)在只有互聯(lián)網(wǎng)地啰,所以它的值永遠(yuǎn)都是代表互聯(lián)網(wǎng)的IN

3:記錄類(lèi)型

標(biāo)識(shí)域名對(duì)應(yīng)何種類(lèi)型的記錄。
類(lèi)型為A:表示域名對(duì)應(yīng)的IP地址
類(lèi)型為MX時(shí)澎羞,表示域名對(duì)應(yīng)的是郵件服務(wù)器髓绽。
類(lèi)型為PTR,表示根據(jù)IP地址反查域名。
類(lèi)型為CNAME,表示查詢(xún)域名相關(guān)別名妆绞。
類(lèi)型為NS顺呕,表示查詢(xún)DNS服務(wù)器IP地址。
類(lèi)型為SOA括饶。表示查詢(xún)域名屬性信息的株茶。

下面是DNS服務(wù)器的基本工作;

DNS服務(wù)器的基本工作.png

DNS 服務(wù)器會(huì)從域名與 IP 地址的對(duì)照表中查找相應(yīng)的記錄图焰,并 返回 IP 地址启盛。

域名的層次結(jié)構(gòu)

由于信息實(shí)際上并不能全部保存在一臺(tái)DNS服務(wù)器上,而是分布在很多臺(tái)DNS服務(wù)器中技羔,這些DNS服務(wù)器相互配合僵闯,才能查詢(xún)出想要的信息。
所以我們這里要看一下:

信息是如何在DNS服務(wù)器上注冊(cè)并保存的藤滥。

1.DNS服務(wù)器中的所有信息都是按照域名以分層次的結(jié)構(gòu)來(lái)保存的鳖粟。
2.DNS中的域名都是用句點(diǎn)來(lái)分割的,比如www.baidu.com拙绊,這個(gè)句點(diǎn)就代表了三個(gè)層次的域名服務(wù)器向图。www是一個(gè)泳秀,baidu是一個(gè),com是一個(gè)榄攀,越靠左層次越高嗜傅,每個(gè)域都是作為一個(gè)整體來(lái)處理的,也就是一個(gè)域就作為一個(gè)整體存放在DNS服務(wù)器中檩赢,上一級(jí)域保存著下一級(jí)域的信息吕嘀,也就是www這個(gè)根域保存著baidu這個(gè)域的信息,當(dāng)我們需要查詢(xún)的時(shí)候漠畜,只需要找到根域币他,然后就可以從根域中查找到我們所要找的域名。
3.實(shí)際上域名的根域并不是www憔狞,而是在上一個(gè)層次的蝴悉,這個(gè)域名保存著www這個(gè)層次的域名信息。

查找響應(yīng)的DNS服務(wù)器并獲取IP地址

我們知道了信息是如何保存的后瘾敢,也就是知道了應(yīng)該怎么查詢(xún)拍冠,因?yàn)樯弦患?jí)域名保存著下一級(jí)域名的信息,上一級(jí)的DNS服務(wù)器保存著下一級(jí)的DNS服務(wù)器信息簇抵,我們首先訪問(wèn)最近的DNS服務(wù)器庆杜,這里其實(shí)就是我們計(jì)算機(jī)上自己已經(jīng)記錄的那臺(tái)DNS服務(wù)器,然后我們?cè)L問(wèn)根域的DNS服務(wù)器碟摆,通過(guò)根域我們知道了www的域名DNS的IP在哪里晃财,然后我們?cè)L問(wèn)它,通過(guò)它的信息里保存的信息繼續(xù)往下查典蜕,一直到我們要查的域名為止断盛,接著返回查到的IP地址。

找到目標(biāo)DNS服務(wù)器.png
DNS之間的查詢(xún)操作.png

通過(guò)上面這兩張圖我們就知道查詢(xún)DNS服務(wù)器的全貌愉舔,大家細(xì)細(xì)品味一下钢猛。

我們還可以更快,通過(guò)緩存加快DNS服務(wù)器的查詢(xún)速度

時(shí)候并不需要從最上級(jí)的根域開(kāi)始查找轩缤,因?yàn)?DNS 服務(wù)器有一 個(gè)緩存 A 功能命迈,可以記住之前查詢(xún)過(guò)的域名。如果要查詢(xún)的域名和相關(guān)信息已 經(jīng)在緩存中火的,那么就可以直接返回響應(yīng)壶愤,接下來(lái)的查詢(xún)可以從緩存的位置開(kāi) 始向下進(jìn)行。相比每次都從根域找起來(lái)說(shuō)馏鹤,緩存可以減少查詢(xún)所需的時(shí)間公你。

第四步:委托協(xié)議棧發(fā)送消息

既然我們已經(jīng)知道了IP地址,那么我們就可以委托系統(tǒng)內(nèi)部的協(xié)議棧向這個(gè)IP地址也就是Web服務(wù)器發(fā)送消息了假瞬。

數(shù)據(jù)通過(guò)類(lèi)似管道的結(jié)構(gòu)來(lái)流動(dòng).png

發(fā)送消息的過(guò)程大體如上圖所示的那樣:

實(shí)際上我們需要經(jīng)過(guò)下面四個(gè)步驟:

1.創(chuàng)建套接字(創(chuàng)建套接字階段)
2.將管道連接到服務(wù)器端的套接字上(連接階段)
3.收發(fā)數(shù)據(jù)(通信階段)
4.斷開(kāi)管道并刪除套接字(斷開(kāi)階段)
客戶(hù)端與服務(wù)器之間交換的控制信息.png

這里我們大體講一下流程陕靠,在第二章節(jié)會(huì)詳細(xì)進(jìn)行講解

從上面的圖中,我們可以分為以下幾個(gè)步驟:

1.通過(guò)解析器查詢(xún)DNS服務(wù)器獲取域名的IP地址
2.通過(guò)調(diào)用socket組件創(chuàng)建套接字脱茉。而描述符就是套接字的句柄剪芥,以讓客戶(hù)端加以區(qū)分
3.通過(guò)調(diào)用Socket庫(kù)中的connect方法進(jìn)行三次握手的連接
4.通過(guò)調(diào)用Socket庫(kù)中的writer發(fā)送數(shù)據(jù)
5.通過(guò)調(diào)用Socket庫(kù)中的read接受數(shù)據(jù)
6.通過(guò)調(diào)用Socket庫(kù)中close方法斷開(kāi)連接。

關(guān)于協(xié)議棧發(fā)送消息琴许,我們會(huì)在第二章部分具體詳解税肪。

其實(shí)這篇文章是上周就寫(xiě)完的,由于簡(jiǎn)書(shū)的圖片不能用外部鏈接榜田,所在這周才發(fā)布益兄!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市箭券,隨后出現(xiàn)的幾起案子净捅,更是在濱河造成了極大的恐慌,老刑警劉巖辩块,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛔六,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡废亭,警方通過(guò)查閱死者的電腦和手機(jī)国章,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)豆村,“玉大人液兽,你說(shuō)我怎么就攤上這事≌贫” “怎么了四啰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)坏匪。 經(jīng)常有香客問(wèn)我拟逮,道長(zhǎng),這世上最難降的妖魔是什么适滓? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任敦迄,我火速辦了婚禮,結(jié)果婚禮上凭迹,老公的妹妹穿的比我還像新娘罚屋。我一直安慰自己,他們只是感情好嗅绸,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布脾猛。 她就那樣靜靜地躺著,像睡著了一般鱼鸠。 火紅的嫁衣襯著肌膚如雪猛拴。 梳的紋絲不亂的頭發(fā)上羹铅,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音愉昆,去河邊找鬼职员。 笑死,一個(gè)胖子當(dāng)著我的面吹牛跛溉,可吹牛的內(nèi)容都是我干的焊切。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼芳室,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼专肪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起堪侯,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嚎尤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后抖格,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體诺苹,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年雹拄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了收奔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡滓玖,死狀恐怖坪哄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情势篡,我是刑警寧澤翩肌,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站禁悠,受9級(jí)特大地震影響念祭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碍侦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一粱坤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓷产,春花似錦站玄、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至尔邓,卻和暖如春晾剖,著一層夾襖步出監(jiān)牢的瞬間锉矢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工齿尽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沈撞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓雕什,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親显晶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贷岸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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