zoukankan      html  css  js  c++  java
  • WEB浏览器

     夏日的雨往往总是暂时的狂妄,只要坚持住了,会有看到彩虹的一刻!刚刚计算机网络课程设计答辩完,正好来了场大雨,那就把这三天以来做WEB浏览器的过程简单的记录下吧,愿减少后来者走弯路~

       1、明确你所要做的WEB浏览器的核心点在哪!

            由于我所做的课设是计算机网络,核心点当然在于发送请求与响应请求,至于HTML的解析、JS的渲染,这对于数据结构与算法来说是一个很好的实践机会!以后有空时可以补充一下

       2、HTTP协议的RFC文档

            对于HTTP协议的RFC文档,目前最新的是HTTP1.1版本,它比1.0版本增加了分层代理,缓存的作用以及对稳定连接和虚拟主机的需求

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

            中文:百度很多翻译版本,看个人喜欢

             该文档有105页,如果只用于本次课设可以只看(Range,Connection,If-Modified-Since、响应状态码等)

       3、SOCKET编程

            a、非阻塞式与阻塞式编程:主要的区别在于非阻塞式在每请求一个资源时,无法该资源是否可用都有一个返回值,而阻塞式只需要被阻塞起来,一直等待直到资源可用,也不返回任何值!当我们在做WEB浏览器时,我们必须所服务的网络是如何的,如果网络相对拥塞,那么采用非阻塞式的会相对好一些,而且我们可以利用HTTP协议中的Content-Range对所请求的资源进行规定本次是请求的是从哪里到哪里,这对于下载文档来说也是相当重要的!非阻塞式SOCKET编程写得比较好的有:http://www.embedu.org/Column/Column235.htm

            b、 步骤:

            没有实现缓存的步骤:

            创建SOCKET对象--域名解析得到目的IP--连接CONNECT到目的主机--发送请求报文--接收响应报文--关闭SOCKET

            实现了缓存的步骤:

            1、创建SOCKET对象--域名解析得到目的IP--连接CONNECT到目的主机--

            2、查看本地缓存中是否有相对应的URL缓存,如果有的话,把缓存中的时间Last-Modified的值填入请求报文的If-Modified-Since头域值中。再发送报文

            3、服务器接收到请求后将请求中Last-Modified的值与所请资源最后一个修改时间比较,如果一致的话则返回304表示资源没有改变,如果不一致的话,则按照常规进行发送响应(200:成功返回页面 ,206:部分发送)

        4、具体可以参照:

             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浏览器是个很可以挖掘个人潜力的项目!要好好利用,挖掘自己潜在的能力,与发现自己的闪光点,这很重要!暑假有空时再一步完善吧!加油!

  • 相关阅读:
    作业之 抽屉的实现
    Python数字
    Python字符串
    Python变量
    Python生成0到9的随机数
    Python 中is和==的区别?
    整理控|四象限系列电脑桌面壁纸分享一波
    Jmeter系列之接口自动化实战
    Jmeter系列之数据库操作
    Jmeter系列之接口断言
  • 原文地址:https://www.cnblogs.com/yihua/p/3166656.html
Copyright © 2011-2022 走看看