WEB瀏覽器

 夏日的雨每每老是暫時的狂妄,只要堅持住了,會有看到彩虹的一刻!剛剛計算機網絡課程設計答辯完,正好來了場大雨,那就把這三天以來作WEB瀏覽器的過程簡單的記錄下吧,願減小後來者走彎路~html

   一、明確你所要作的WEB瀏覽器的核心點在哪!程序員

        因爲我所作的課設是計算機網絡,核心點固然在於發送請求與響應請求,至於HTML的解析、JS的渲染,這對於數據結構與算法來講是一個很好的實踐機會!之後有空時能夠補充一下web

   二、HTTP協議的RFC文檔算法

        對於HTTP協議的RFC文檔,目前最新的是HTTP1.1版本,它比1.0版本增長了分層代理,緩存的做用以及對穩定鏈接和虛擬主機的需求編程

        英文:http://www.faqs.org/rfcs/rfc2616.html#b瀏覽器

        中文:百度不少翻譯版本,看我的喜歡緩存

         該文檔有105頁,若是隻用於本次課設能夠只看(Range,Connection,If-Modified-Since、響應狀態碼等)服務器

   三、SOCKET編程網絡

        a、非阻塞式與阻塞式編程:主要的區別在於非阻塞式在每請求一個資源時,沒法該資源是否可用都有一個返回值,而阻塞式只須要被阻塞起來,一直等待直到資源可用,也不返回任何值!當咱們在作WEB瀏覽器時,咱們必須所服務的網絡是如何的,若是網絡相對擁塞,那麼採用非阻塞式的會相對好一些,並且咱們能夠利用HTTP協議中的Content-Range對所請求的資源進行規定本次是請求的是從哪裏到哪裏,這對於下載文檔來講也是至關重要的!非阻塞式SOCKET編程寫得比較好的有:http://www.embedu.org/Column/Column235.htm數據結構

        b、 步驟:

        沒有實現緩存的步驟:

        建立SOCKET對象--域名解析獲得目的IP--鏈接CONNECT到目的主機--發送請求報文--接收響應報文--關閉SOCKET

        實現了緩存的步驟:

        一、建立SOCKET對象--域名解析獲得目的IP--鏈接CONNECT到目的主機--

        二、查看本地緩存中是否有相對應的URL緩存,若是有的話,把緩存中的時間Last-Modified的值填入請求報文的If-Modified-Since頭域值中。再發送報文

        三、服務器接收到請求後將請求中Last-Modified的值與所請資源最後一個修改時間比較,若是一致的話則返回304表示資源沒有改變,若是不一致的話,則按照常規進行發送響應(200:成功返回頁面 ,206:部分發送)

    四、具體能夠參照:

         Socket編程Http下載的簡單實現:http://www.cnblogs.com/dejavu/archive/2013/01/08/2850265.html

         C++ 用socket封裝成http:http://blog.csdn.net/itjobtxq/article/details/6234690

           如何使用SOCKET 發送HTTP1.1 GET POST請求包:http://blog.csdn.net/huangxy10/article/details/7662322

           HTTP Get,Post請求詳解: http://blog.chinaunix.net/uid-25808509-id-3047968.html

            C++文件讀寫:http://www.cnblogs.com/ifeiyun/articles/1573134.html

 


2013/7/2--13:06:29

好快就這樣結束個人大三!感受大三第二學期真心沒有學到什麼,當程序員的,不該該如此浮躁啊,暑假沒去實習也沒什麼的,重要的是計劃與執行計劃,重要的是快樂地生活!!!WEB瀏覽器是個很能夠挖掘我的潛力的項目!要好好利用,挖掘本身潛在的能力,與發現本身的閃光點,這很重要!暑假有空時再一步完善吧!加油!

相關文章
相關標籤/搜索