HTTP服务器软件系统的设计与实现(17)
时间:2017-02-21 13:09 来源:毕业论文 作者:毕业论文 点击:次
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) |