国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

寫一個簡易瀏覽器、ASP.NET核心知識(3)

2019-11-17 02:01:53
字體:
來源:轉載
供稿:網友

寫一個簡易瀏覽器、asp.net核心知識(3)

前言

hh[1]先在文章前面說好了,省得大家發現我根本沒有這樣的頭發,duang的一下一堆人罵我。

這篇文章的標題有點大,其實挺low的,我需要在開頭解釋一下。我這里只想寫一個小的控制臺,旨在模擬瀏覽器的http通信。

不是真的能用的瀏覽器。

簡單的說,今天的全部工作就是

clipboard

建立Socket→發送請求報文→ 服務器返回報文→顯示報文。僅此而已喏。

實話說出來,是不是一下就low了?

我的目的只有兩個。 1.加深對http協議的理解 2.深化對B/S結構的認識。

如果您已經非常了解這些東西了。那就甭搭理我,讓我自娛自樂一會就好了。

理論支持

1.http工作原理

上一篇文章介紹了,http協議的運行機制,簡單的說就是這樣一張圖。

clipboard[1]

2.瀏覽器工作原理

根據這個運行機制,我猜測瀏覽器的工作原理應該是這樣的。

clipboard[2]

當然,這個原理圖里,我刻意的忽略了瀏覽器 解釋javascript的能力、緩存管理的能力等等......

主要原因是,都考慮進去圖就太復雜了。背離了我們研究http協議,理解B/S模式的初衷。

hh[1]當然了,根本原因是,我不會! (突然好悲傷啊。。。不說了,我先哭一會)

代碼

1.思路

思路沒什么好說的就是上面那張圖。

clipboard[3]

建立Socket→發送請求報文→ 服務器返回報文→顯示報文。

2.代碼

 1 /* 2 這個程序把主機地址寫死了, 3 想更像的話,可以在加個輸入。然后根據輸入的url獲取 響應報文。 4 */ 5   6 Socket socket = new Socket(SocketType.Stream, PRotocolType.Tcp); 7 //連接服務器。http協議默認的端口號是80。每個服務器軟件監聽一個端口(別的軟件就不能監聽這個端口了),發送給這個端口的數據只會被這個服務器軟件接收到。 8 socket.Connect(new DnsEndPoint("127.0.0.1", 8080)); 9 //讀寫socket通訊數據的流10 using (NetworkStream netStream = new NetworkStream(socket))11 using (StreamWriter writer = new StreamWriter(netStream))12 {13     //這里就是寫之前 講的請求報文,偷點懶,不多寫了14     writer.WriteLine("GET /index.html HTTP/1.1");15     writer.WriteLine("Host: 127.0.0.1:8080");16     //空行回車,表示指令結束17     //還記得http請求報文格式嗎?報文頭和報文體之間用一個空行回車隔開。18     writer.WriteLine();19 }20 //開始讀嘍21 using (NetworkStream netStream = new NetworkStream(socket))22 using (StreamReader reader = new StreamReader(netStream))23 {24     string line;25     while ((line = reader.ReadLine())!=null)26     {27         //讀一行輸出一行28         Console.WriteLine(line);                    29     }30 }31 //幾個釋放資源32 socket.Disconnect(false);

調試

1.預期效果

clipboard[4]

沒錯,這就是瀏覽器請求IIS歡迎頁面的響應報文。如果我們的控制臺能輸出一樣的響應報文,證明實驗成功了!!

2.調試結果

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金昌市| 东乡县| 建平县| 罗江县| 南木林县| 青海省| 宁夏| 班玛县| 汤阴县| 韩城市| 卢龙县| 和顺县| 杭锦旗| 东乌| 都匀市| 鸡西市| 塔城市| 汉阴县| 泉州市| 新源县| 赤城县| 靖安县| 金华市| 浦北县| 海晏县| 岚皋县| 崇左市| 平乐县| 永兴县| 怀远县| 琼中| 萨迦县| 五河县| 石屏县| 东平县| 邵东县| 鹿泉市| 米林县| 海南省| 高青县| 任丘市|