http://www.chedong.com/tech/cache.html#compatible
WEB应用的缓存兼容性设计
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTD头信息中,增加了HTTP_X_FORWARDED_????信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址:
下面是2个例子,用于说明缓存兼容性应用的设计原则:
'对于一个需要服务器名的地址的ASP应用:不要直接引用HTTP_HOST/SERVER_NAME,判断一下是否有HTTP_X_FORWARDED_SERVER
function getHostName ()
dim hostName as String = ""
hostName = Request.ServerVariables("HTTP_HOST")
if not isDBNull(Request.ServerVariables("HTTP_X_FORWARDED_HOST")) then
if len(trim(Request.ServerVariables("HTTP_X_FORWARDED_HOST"))) > 0 then
hostName = Request.ServerVariables("HTTP_X_FORWARDED_HOST")
end if
end if
return hostNmae
end function
//对于一个需要记录客户端IP的PHP应用:不要直接引用REMOTE_ADDR,而是要使用HTTP_X_FORWARDED_FOR,
function getUserIP (){
$user_ip = $_SERVER["REMOTE_ADDR"];
if ($_SERVER["HTTP_X_FORWARDED_FOR"]) {
$user_ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
}
注意:HTTP_X_FORWARDED_FOR如果经过了多个中间代理服务器,有何能是逗号分割的多个地址,
比如:200.28.7.155,200.10.225.77 unknown,219.101.137.3
因此在很多旧的数据库设计中(比如BBS)往往用来记录客户端地址的字段被设置成20个字节就显得过小了。
经常见到类似以下的错误信息:
Microsoft JET Database Engine 错误 '80040e57'
字段太小而不能接受所要添加的数据的数量。试着插入或粘贴较少的数据。
/inc/char.asp,行236
原因就是在设计客户端访问地址时,相关用户IP字段大小最好要设计到50个字节以上,当然经过3层以上代理的几率也非常小。
分享到:
相关推荐
一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。 如今,越来越多的Web应用程序开始使用memcached这个高速的缓存服务器软件。然而,memcached的基础知识远...
7. **跨平台支持**:由于移动设备操作系统多样,如iOS、Android、Windows Phone等,好的移动Web应用程序组建应该具有良好的跨平台兼容性。 8. **本地设备访问**:移动Web应用程序组建可能提供API或服务,让开发者...
方法定义了客户端要执行的操作,请求目标可以是URL或路径,协议版本确保通信兼容性。 **安全与加速** Web应用安全涉及到防止诸如跨站脚本(XSS)、SQL注入、DDoS攻击等威胁。这需要正确配置服务器,限制敏感信息...
【jsp程序设计开发web应用】 在web开发领域,JavaServer Pages(JSP)技术是一种用于构建动态网页的应用程序开发标准,由Sun Microsystems(现已被Oracle公司收购)开发。JSP被广泛应用于创建交互式、数据驱动的Web...
例如,对于需要跨平台兼容性的项目,ODBC和JDBC可能是更好的选择,而如果在Windows环境中并且需要高性能,ADO可能更为适用。此外,随着技术的发展,ASP.NET、PHP、Python等现代Web开发框架也提供了更高级别的抽象和...
- 兼容性:跨平台兼容性是Web服务的一大优点,因为它们基于标准的SOAP或RESTful协议。 6. **Web服务的测试与调试** - 使用Visual Studio内置的Web服务测试客户端或者第三方工具如SoapUI进行测试。 - 调试Web服务...
10. **响应式设计**:随着移动设备的普及,Web应用需具备跨平台兼容性。响应式设计确保页面在不同设备上都能良好显示。 总的来说,Web应用开发原理与技术是一个庞大且复杂的领域,涉及众多技术和工具。学习并掌握...
Vaadin,源自北欧的Web应用开发利器,是一款由芬兰ITMill公司开发的开源富互联网应用程序(Rich Internet Applications,简称RIA)开发框架。其历史可追溯至2000年,最初以Millstone用户界面类库的形式出现,经过多...
在IT行业中,前端开发是构建Web应用程序的重要组成部分,它涉及到用户与网站之间的交互。本案例主要探讨如何将网站转换为“Web快应用”,使用户能够像本地应用一样在桌面环境中快速访问和使用。以“Hoppscotch.io”...
"应用 WEB 框架模块设计" 在本文中,我们将详细介绍应用 WEB 框架模块设计的各个组件和它们之间的关系。我们将从单一入口开始,逐步介绍路由、控制层、业务模型层、表示层、异步处理、接口层、数据层、缓存层和通用...
4. Web标准与兼容性:理解W3C的Web标准,如XHTML和CSS2,以及如何确保网页在不同浏览器和设备上的兼容性,这对于网页设计师来说至关重要。 5. 响应式设计:随着移动设备的普及,响应式设计成为现代网页设计的标准。...
5. **性能优化**:为了支持高性能的Web应用,体系结构设计需要考虑缓存策略、负载均衡、异步处理等优化手段,以提高系统的响应速度和吞吐量。 6. **可扩展性**:随着业务的增长,构件库应具备良好的扩展性,允许...
在Web标准方面,这意味着遵循W3C制定的HTML、CSS和DOM等标准,以确保代码的跨浏览器兼容性和语义化。 HTML(超文本标记语言)是网页的基础,用于定义页面内容的结构。在重构过程中,应使用语义化的标签,如、、和,...
**oscache缓存技术应用** **一、OSCache简介与应用** ...其灵活性、广泛的兼容性和丰富的特性使其成为Web应用性能提升的首选。正确配置和使用OSCache,能有效地提高系统效率,减少数据库负载,提升用户体验。
### IE10兼容性白皮书关键知识点解析 #### 一、HTML5增强用户体验的关键特性 **1. Canvas元素:** - **定义:**Canvas 元素是 HTML5 中新增的一项强大功能,允许开发者在页面上绘制图形。 - **优势:** - 可以在...
### VS.NET 2003 无法打开或创建 Web 应用程序的解决办法 在使用 VS.NET 2003 进行 Web 开发的过程中,可能会遇到无法正常打开或创建 Web 应用...如果问题仍然存在,建议进一步排查系统环境和软件兼容性等方面的问题。
在Web应用中,用户界面通常在用户的浏览器上运行,这意味着任何问题都可能源于浏览器的兼容性、缓存、JavaScript执行或其他客户端因素,而不是应用程序代码。因此,测试人员需要考虑多种浏览器和设备环境,确保应用...