HTTP服务器软件系统的设计与实现(17)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

HTTP服务器软件系统的设计与实现(17)


        public bool isGZIPSupported()
        {
            return (Requests != null && Requests.ContainsKey("Accept-Encoding") && Requests["Accept-Encoding"].Contains("gzip")) ? true : false;
        }
        /// <summary>
        /// 返回查询strin值,返回“”如果不存在
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public string GetQueryStringValue(string key)
        {
            if (UrlParameters == null || UrlParameters.Count == 0 || !UrlParameters.ContainsKey(key)) return string.Empty;
            return UrlParameters[key];
        }

    }

3.2.3    HTTP Response类
Http服务下的Response模块,在RFC2616中说明了, 接收和翻译一个请求消息后,服务器发出一个HTTP响应消息。所以需要一个HTTP Response,它的主要功能是接受HttpRequest以及翻译HttpRequest,并把响应发回给Web浏览器。
代码分析:
public class HttpResponse : ApplicationResponse
    {
        public HttpResponse(byte[] response,ApplicationRequest request)
            : base(request)
        {            
            this.ResponseData = response;
        }

        public override byte[] ElaborateData()
        {
            return base.ElaborateData();
        }
    }

3.2.4     Http辅助功能类
本次设计的Http服务器,它里面包含了各种各样的文件,有用来测试的Html文件,css样式表文件,Html里面包含的javascript,登录时浏览器上显示的图片文件,以及xml文件等等,所以需要一个类来解析各个文件,Http服务下的HttpHelper类,它主要是帮助Web服务器要能够解析windows下面各种类型的文件,图片格式ICO、GIF、G、EG、PNG,还需要支持解析各种超文本标记语言,如htm、html、xhtml、dhtml,还有脚本语言javascript,样式表css,可扩展标记语言xml。
代码分析:
   public class HttpHelper
    {

        /// <summary>
        /// 返回true如果资源是静态的资源组的一部分
        /// </summary>
        /// <param name="resource">resource name</param>
        /// <returns></returns>
        public static bool IsStaticResource(string resource)
        {
            return Regex.IsMatch(resource, @"(.*?)\.(ico|css|gif|jpg|jpeg|png|js|xml)$"); (责任编辑:qin)