http入門

萬維網(wǎng)的來歷:

1990年Tim Berners-Lee 發(fā)明了用網(wǎng)址就能訪問網(wǎng)頁的辦法,他發(fā)明了第一個網(wǎng)頁、第一個瀏覽器和第一個服務(wù)器。//那1990年之前的世界是怎么樣的?
1965 年趾娃,Email 被發(fā)明出來臊泰,成為互聯(lián)網(wǎng)的「殺手級」應(yīng)用冒晰,因為你可以瞬間發(fā)一封信給遠(yuǎn)方的人同衣,不需要信紙、郵票和郵遞員壶运。
1971 年乳怎,用 @ 符號來表示 Email 的方法被發(fā)明出來。我挺好奇之前的郵箱地址是怎么表示的前弯。
1979 年蚪缀,郵件討論組被發(fā)明出來,人們可以在一個話題下公開地互發(fā)郵件恕出。
人們通過 FTP 來下載文件附件
1980 年至 1990 年間询枚,人們迫切需要一種更好的上網(wǎng)方式,很多方案被提出浙巫,如 HTTP 和 Gopher金蜀。后面的事情大家都知道了,HTTP 因為其易用性勝出的畴。當(dāng)時的郵件內(nèi)容全都是普通文本渊抄,或者是類 Markdown 形式的文本(makedown是總結(jié)出來的,不是被發(fā)明的,)人們需要一種超級文本用來做頁面跳轉(zhuǎn),也就是我們現(xiàn)在見到的 <a> 標(biāo)簽丧裁,不過那時的人還沒想到這一點护桦,當(dāng)時的超集文本方案有很多,HTML 只是其中之一煎娇,而且當(dāng)時的 HTML 也非常簡陋二庵,只有 11 個標(biāo)簽。在這種背景之下缓呛, Tim Berners-Lee(下文中稱為李爵士) 在 1989 年至 1992 年間催享,發(fā)明了 WWW萬維網(wǎng),一種適用于全世界的網(wǎng)絡(luò)。
主要包含三個概念

  • URI哟绊,俗稱網(wǎng)址
  • HTTP因妙,兩個電腦之間傳輸內(nèi)容的協(xié)議//http協(xié)議是李爵士發(fā)明的,如果沒有這個協(xié)議呢,服務(wù)器不知道怎么把文件傳給你
  • HTML,超級文本票髓,當(dāng)時主要用來做頁面跳轉(zhuǎn)//html也是李爵士發(fā)明的

簡單來說:URL 的作用是能讓你訪問一個頁面攀涵,HTTP 的作用是讓你能下載這個頁面,HTML 的作用是讓你能看懂這個頁面炬称。這是一個簡單而完美的系統(tǒng)汁果。

李爵士除了發(fā)明了這些概念,還付諸了行動:

  • 發(fā)明了第一個服務(wù)器
  • 發(fā)明了第一個瀏覽器
  • 寫出了第一個網(wǎng)頁

什么是http?

  • http全稱就是超文本傳輸協(xié)議,簡單來說就是一個協(xié)議//就是一套規(guī)則
  • url和uri的區(qū)別// url是統(tǒng)一資源定位符,uri是統(tǒng)一資源標(biāo)識符//
    身份證號類似于URI玲躯,通過身份證號能讓我們能且僅能確定一個人。
    身份證地址類似于URL://地球/中國/浙江省/杭州市/西湖區(qū)/某大學(xué)/14號宿舍樓/525號寢/張三.人可以看到,這個字符串同樣標(biāo)識出了唯一的一個人跷车,起到了URI的作用棘利,所以URL是URI的子集。
    不論是用定位的方式還是用編號的方式朽缴,我們都可以找出唯一確定一個人善玫,都是URl的一種實現(xiàn),而URL就是用定位的方式實現(xiàn)的URI密强。
  • URL就是我們俗稱的地址

http其實就是瀏覽器和服務(wù)器之間,在傳輸數(shù)據(jù)時所遵守的約定//阮一峰http入門博客

  • HTTP報文是在HTTP應(yīng)用程序之間發(fā)送的數(shù)據(jù)塊茅郎。這些數(shù)據(jù)塊以一些文本形式的元信息開頭,描述報文的內(nèi)容及含義或渤,后面跟著可選的數(shù)據(jù)部分

請求報文

  • http是單向,QQ發(fā)送消息是雙向的
  • 每一個電腦都有很多端口,每個端口只做一件事情,每一個端口都指定了是進(jìn)行什么工作的
    1080是代理服務(wù)器端口
    80端口是用來服務(wù)http協(xié)議的
  • 瀏覽器請求-服務(wù)器接受-服務(wù)器響應(yīng)-瀏覽器渲染出接收到的數(shù)據(jù)
  • 瀏覽器只負(fù)責(zé)發(fā)送請求的,服務(wù)器是在80端口接受請求的,服務(wù)器還負(fù)責(zé)響應(yīng)數(shù)據(jù),瀏覽器負(fù)責(zé)接受渲染數(shù)據(jù)
  • http就是指導(dǎo)服務(wù)器,瀏覽器溝通//WTF溝通還要人指導(dǎo)?是的//比如說, 瀏覽器請求寫錯了,服務(wù)器就顯示404//服務(wù)器停機(jī)了,瀏覽器請求的時候,服務(wù)器返回502
    如果不規(guī)定這些,當(dāng)溝通出問題,你也不知道問題出在哪里,也不知道如何解決

請求報文具體作用

這是示例1執(zhí)行命令行:curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"
GET / HTTP/1.1                                   //這句話的意思:獲取根目錄內(nèi)容(因為沒寫路徑,默認(rèn)根目錄);使用http協(xié)議;使用http1.1版本
Host: www.baidu.com                     // 這句話意思:訪問百度這個網(wǎng)站的域名
User-Agent: curl/7.54.0                 // 這句話的意思:我用的CURL軟件;發(fā)起當(dāng)前六句話請求
Accept: */*                                          //這句話意思:我接受你返回的任何內(nèi)容
Frank: xxx                                            //這句話:隨便加的,測試用,證明我可以加?xùn)|西而已

示例2執(zhí)行命令行:curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx

示例3執(zhí)行命令行:curl -X POST -d "1234567890" -s -v -H "Frank: xxx" --  "https://www.baidu.com" 
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx
Content-Length: 10
Content-Type: application/x-www-form-urlencoded

1234567890                                              // 這時候你會發(fā)現(xiàn),又多出了一些東西,多了四行東西,其中content-length顧名思義是上傳的長度;content-type是上傳的格式;空行就是空行;1234567890這是你上傳的具體內(nèi)容,也就是字串//

  • get和post的區(qū)別?//get是獲取內(nèi)容,post是上傳內(nèi)容,別在get的時候上傳信息//一般是登錄的時候用post,還要寫用戶名+密碼

請求的格式

1 動詞 路徑 協(xié)議/版本
2 Key1: value1
2 Key2: value2
2 Key3: value3
2 Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
3
4 要上傳的數(shù)據(jù)

  • 請求最多包含四部分系冗,最少包含三部分。(也就是說第四部分可以為空)
    第三部分永遠(yuǎn)都是一個回車(\n)
  • 第三部分回車,就是用來區(qū)分第二和第四部分的
  • 動詞有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
  • 這里的路徑包括「查詢參數(shù)」薪鹦,但不包括「錨點」//因為錨點#是瀏覽器看的,服務(wù)器不看錨點
  • 如果你沒有寫路徑掌敬,那么路徑默認(rèn)為 /
  • 第 2 部分中的 Content-Type 標(biāo)注了第 4 部分的格式

只要你不按照http協(xié)議去做,就出錯


用 Chrome 發(fā)請求

打開 Network
地址欄輸入網(wǎng)址
在 Network 點擊,查看 request池磁,點擊「view source」
點擊「view source」
點擊「view source」
點擊「view source」
終于點了奔害?可以看到請求的前三部分了
如果有請求的第四部分,那么在 FormData 或 Payload 里面可以看到
響應(yīng)
請求了之后地熄,應(yīng)該都能得到一個響應(yīng)华临,除非斷網(wǎng)了,或者服務(wù)器宕機(jī)了端考。


響應(yīng)示例
上面三個請求示例银舱,前兩個請求對應(yīng)的響應(yīng)分別為
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 2443
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:14:05 GMT
Etag: "5886041d-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

<!DOCTYPE html>
<html> <head> 后面太長,省略了……
HTTP/1.1 302 Found
Connection: Keep-Alive
Content-Length: 17931
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:19:47 GMT
Etag: "54d9749e-460b"
Server: bfe/1.0.8.18

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 后面太長跛梗,省略了……
GET 請求和 POST 請求對應(yīng)的響應(yīng)可以一樣寻馏,也可以不一樣
響應(yīng)的第四部分可以很長很長很長
響應(yīng)的格式

1 協(xié)議/版本號 狀態(tài)碼 狀態(tài)解釋
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下載的內(nèi)容
狀態(tài)碼要背,是服務(wù)器對瀏覽器說的話
1xx 不常用
2xx 表示成功
3xx 表示滾吧
4xx 表示你丫錯了
5xx 表示好吧核偿,我錯了
狀態(tài)解釋沒什么用
第 2 部分中的 Content-Type 標(biāo)注了第 4 部分的格式
第 2 部分中的 Content-Type 遵循 MIME 規(guī)范
用 Chrome 查看響應(yīng)

打開 Network
輸入網(wǎng)址
選中第一個響應(yīng)
查看 Response Headers诚欠,點擊「view source」,點擊「view source」漾岳,點擊「view source」
你會看到響應(yīng)的前兩部分
查看 Response 或者 Preview轰绵,你會看到響應(yīng)的第 4 部分


HTTP 協(xié)議的底層其實是由 TCP 協(xié)議和 IP 協(xié)議(簡稱 TCP/IP)構(gòu)建的。TCP 傳輸控制協(xié)議(Transmission Control Protocol)

//http規(guī)定了請求和響應(yīng)四部分如何寫,但是沒有規(guī)定怎么傳輸,TCP就是來管傳輸?shù)?/p>

  1. TCP 和 UDP 的區(qū)別是什么
    //TCP 可靠(我發(fā)的請求成功與否,我是知道的/就像我們訪問谷歌首頁,成功正常顯示首頁,不成功會顯示具體錯誤的頁面)尼荆、面向連接(傳輸?shù)臅r候需要建立起兩頭連接)左腔、相對 UDP 較慢;UDP 不可靠(發(fā)送一個請求,成功與否是不知道的)捅儒,不面向連接(傳輸不需要建立連接)液样、相對 TCP 較快振亮。搞定。

  2. TCP 的三次握手指的是什么
    //每次建立連接前鞭莽,客戶端和服務(wù)端之前都要先進(jìn)行三次對話才開始正式傳輸內(nèi)容坊秸,三次對話大概是這樣的:

     1\. 客戶端:我要連接你了,可以嗎
     2\. 服務(wù)端:嗯澎怒,我準(zhǔn)備好了褒搔,連接我吧
     3\. 客戶端:那我連接你咯。
     4\. 開始后面步驟
    
    

如果你想更了解 TCP 可以看 此文喷面,也可以買一本《TCP/IP 詳解(卷一)》(共三卷星瘾,先只買一卷即可)。強(qiáng)調(diào)一遍惧辈,這不是前端的內(nèi)容琳状,只需稍微了解一下 TCP 即可。

IP 網(wǎng)絡(luò)協(xié)議(英語:Internet Protocol)

只要你在互聯(lián)網(wǎng)中咬像,那么你就會有一個 IP算撮。通俗上理解,IP 分為「內(nèi)網(wǎng) IP」 和「外網(wǎng) IP」

  • 你從電信那里買來帶寬县昂,一年一千多肮柜。
  • 電信為你提供 DNS 服務(wù)。
  • 你買了一個路由器倒彰,然后用電腦和手機(jī)分別連接路由器廣播出來的無線 WIFI审洞。
  • 只要路由器連上電信的服務(wù)器,那么路由器就會有一個「外網(wǎng) IP」待讳,比如「14.17.32.211」就是一個外網(wǎng) IP芒澜。這就是你在互聯(lián)網(wǎng)中的地址。
  • 但是如果你重啟路由器创淡,那么你很有「可能」被重新分配一個「外網(wǎng) IP」痴晦,也就是說 你的路由器沒有「固定的外網(wǎng) IP」
  • 你可以花每年幾千塊錢租用一個「固定的外網(wǎng) IP」,但是顯然不會這么浪費錢琳彩。像騰訊誊酌、阿里這樣的大公司租用了很多外網(wǎng) IP,這樣才能對我們提供穩(wěn)定的服務(wù)露乏。
  • 但是有個問題碧浊,你的路由器的外網(wǎng) IP 如果是14.17.32.211,那么你的手機(jī)和電腦的 IP 又是什么呢瘟仿?答案是「內(nèi)網(wǎng) IP」
  • 路由器會在你家里創(chuàng)建一個內(nèi)網(wǎng)箱锐,內(nèi)網(wǎng)中的設(shè)備使用內(nèi)網(wǎng) IP,一般來說這個 IP 的格式都是 192.168.xxx.xxx劳较。
    • 一般路由會給自己分配一個好記的內(nèi)網(wǎng) IP驹止,如 192.168.1.1
    • 然后路由會給每一個內(nèi)網(wǎng)中的設(shè)備分配一個不同的內(nèi)網(wǎng) IP浩聋,如電腦是 192.168.1.2,手機(jī)是 192.168.1.3幢哨,以此類推赡勘。
    • 現(xiàn)在路由器有兩個 IP嫂便,一個外網(wǎng) IP(14.17.32.211)和一個內(nèi)網(wǎng) IP(192.168.1.1)
      • 內(nèi)網(wǎng)中的設(shè)備可以互相訪問(比如你可以用電腦或手機(jī)進(jìn)入 http://192.168.1.1 來查看你的路由器)捞镰,但是不能直接訪問外網(wǎng),內(nèi)網(wǎng)設(shè)備想要訪問外網(wǎng)毙替,就必須經(jīng)過路由器中轉(zhuǎn)岸售。
      • 外網(wǎng)中的設(shè)備可以互相訪問(比如 qq.com 可以把首頁發(fā)送給你的路由器,你的路由器有外網(wǎng) IP)厂画,但是外網(wǎng)中的設(shè)備無法訪問你的內(nèi)網(wǎng)設(shè)備(這很好理解凸丸,內(nèi)網(wǎng)是一個封閉的網(wǎng)絡(luò),外人進(jìn)不來袱院,所以實際上 qq.com 無法直接把首頁放送給你的電腦和手機(jī))
        • 問題來了屎慢,那 qq.com 是怎么把首頁發(fā)送到我的手機(jī)上的呢?答案是通過路由器來中轉(zhuǎn)忽洛。
        • 路由器接收到 qq.com 的頁面后腻惠,把頁面發(fā)送給你的電腦或手機(jī)。路由器知道如何給這些信息指路欲虚,路由器就是一個指路人集灌,這就是「路由」兩個字的來歷。
        • 路复哆,就是「必由之路」中的路欣喧。由,就是「必由之路」中的由(由是經(jīng)過梯找、緣由的意思)唆阿。所有的信息都要經(jīng)過路由器,然后被指向一條它該去的路锈锤。
      • 也就是說內(nèi)網(wǎng)和外網(wǎng)就像兩個隔絕的空間驯鳖,無法互通,唯一的聯(lián)通點就是路由器(因為路由器既有外網(wǎng) IP 也有內(nèi)網(wǎng) IP)牙咏,所以路由器有時候也被叫做「網(wǎng)關(guān)」臼隔,這個「關(guān)」是「一夫當(dāng)關(guān),萬夫莫開」的「關(guān)」妄壶。如果路由器到電信的連接中斷了摔握,那么內(nèi)網(wǎng)中所有的設(shè)備也就無法上網(wǎng)了。(這很好理解丁寄,相當(dāng)于唯一一條出去的路斷了)
  • 除了內(nèi)網(wǎng) IP 和外網(wǎng) IP氨淌,還有兩個特別特殊的 IP泊愧,就是本地 IP:127.0.0.1。本地 IP 永遠(yuǎn)表示設(shè)備自己盛正。不信你可以 ping 127.0.0.1 一下删咱,會發(fā)現(xiàn)只需要 0.01 ms 就得到了響應(yīng)(你 ping qq.com 需要幾十毫秒才得到響應(yīng))
    • 默認(rèn)情況下,hosts 文件里會有一行127.0.0.1 localhost豪筝,意思就是 localhost 指向 127.0.0.1痰滋,所以 localhost 也表示設(shè)備自己。不信你 ping localhost 試試续崖,會發(fā)現(xiàn)實際上是在 ping 127.0.0.1
  • 還有一個特別特殊的 IP:0.0.0.0敲街,它不表示任何設(shè)備。這個 IP 不同的地方含義不同严望,以后我們會用到多艇,用到的時候再說意思艾恼。

端口

你想要訪問一個設(shè)備(前提是你使用的是 TCP 或 UDP 協(xié)議醉者。還記得嗎,HTTP 就使用了 TCP)晃琳,只指定 IP 是不夠的拨匆,還必須指定端口(Port)姆涩。

端口其實就是一個編號,并不是一種硬件涮雷。

一個服務(wù)器(硬件)不一定只提供一種服務(wù)阵面,比如一個服務(wù)器既提供 HTTP 服務(wù),又提供 FTP 服務(wù)洪鸭,還提供 SMTP 服務(wù)(郵件服務(wù))样刷,那么只用一個 IP 是無法告訴服務(wù)器你想要使用哪種服務(wù)。

所以這里有一個重要的原則:一個端口對應(yīng)一個服務(wù)览爵。

比如

  1. 要提供 HTTP 服務(wù)你最好使用 80 端口(能不能使用別的端口置鼻?可以,不過不建議你違反約定)
  2. 要提供 HTTPS 服務(wù)你最好使用 443 端口(能不能使用別的端口蜓竹?可以箕母,不過不建議你違反約定)
  3. 要提供 FTP 服務(wù)你最好使用 21 端口(能不能使用別的端口?可以俱济,不過不建議你違反約定)

問題1:我怎么知道應(yīng)該使用什么端口嘶是?

維基百科 把 0 到 1023 號端口對應(yīng)的服務(wù)都告訴你了,點進(jìn)去看看吧蛛碌。

問題2:一共由多少端口聂喇?

每個機(jī)器一共有 65535(2的16次方減1)個端口(這是協(xié)議規(guī)定的)。不過這些端口的使用由一些規(guī)定

  1. 0 到 1023(2的10次方減1)號端口是留給系統(tǒng)使用的,你只有擁有了管理員權(quán)限后希太,才能使用這 1024 個端口克饶。
  2. 其他端口可以給普通用戶使用
  3. 如果一個端口正在提供服務(wù),也就是被占用了誊辉,那么就不能再使用這個端口矾湃。除非你先停掉正在占用這個端口的服務(wù)。以后你們會經(jīng)常遇到這個問題堕澄。

總結(jié)

上面都是 TCP/IP 相關(guān)的知識邀跃,如果你記不住,就記住下面這句話:

使用 HTTP 協(xié)議訪問另一個 IP 時奈偏,要同時提供 IP 和端口號坞嘀,缺一不可躯护。

那么問題來了

我訪問 http://qq.com 時并沒有提供端口號惊来,為什么我依然可以訪問

答:因為瀏覽器幫你加了默認(rèn)端口號 80。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棺滞,一起剝皮案震驚了整個濱河市裁蚁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌继准,老刑警劉巖枉证,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異移必,居然都是意外死亡室谚,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門崔泵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秒赤,“玉大人,你說我怎么就攤上這事憎瘸∪肜海” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵幌甘,是天一觀的道長潮售。 經(jīng)常有香客問我,道長锅风,這世上最難降的妖魔是什么酥诽? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮皱埠,結(jié)果婚禮上肮帐,老公的妹妹穿的比我還像新娘。我一直安慰自己漱逸,他們只是感情好泪姨,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布游沿。 她就那樣靜靜地躺著,像睡著了一般肮砾。 火紅的嫁衣襯著肌膚如雪诀黍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天仗处,我揣著相機(jī)與錄音眯勾,去河邊找鬼。 笑死婆誓,一個胖子當(dāng)著我的面吹牛吃环,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播洋幻,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼郁轻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了文留?” 一聲冷哼從身側(cè)響起好唯,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎燥翅,沒想到半個月后骑篙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡森书,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年靶端,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凛膏。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡杨名,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出译柏,到底是詐尸還是另有隱情镣煮,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布鄙麦,位于F島的核電站典唇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胯府。R本人自食惡果不足惜介衔,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望骂因。 院中可真熱鬧炎咖,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绸栅,卻和暖如春级野,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粹胯。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工蓖柔, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人风纠。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓况鸣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親竹观。 傳聞我的和親對象是個殘疾皇子镐捧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354