关于解决直接访问某个页面报403,然而直接复制地址,在新窗口打开,却没有任何问题,可以正常访问。

关于解决直接访问某个页面报403,然而直接复制地址,在新窗口打开,却没有任何问题,可以正常访问。

原因分析:Referer携带了我们自身网站的域名,第三方网站认为这是非法访问,所以报错403 forbidden,因此我们需要在自己项目中跳转第三方外链的时候,去掉Referer信息:


问题描述和解决方法1:

这篇博客中有解决的一种方法:
https://blog.csdn.net/Boale_H/article/details/120283883


方法2:

在html或者js中 手动添加mate标签,去掉referrer

1.在对应页面的js中加上mate标签

// js中添加mate标签,去掉referrer
const addMeta = (name, content) => {
    const meta = document.createElement('meta');
    meta.content = content;
    meta.name = name;
    document.getElementsByTagName('head')[0].appendChild(meta);
};
addMeta(
    'referrer',
    'no-referrer',
);

2.在对应的html页面中加上mate标签
在HTML代码的head中添加一句

<meta name="referrer" content="no-referrer" />

最后跳转时正常可跳转

window.open(xxxxx)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Imagevue是一个超酷超炫的相册网站程序。Imagevue易于安装易于升级,易于管理,可轻松的更新您的照片库的新图像,你只需要上传照片到您的服务器空间,其他工作都是自动的!Imagevue包括相册、幻灯片播放和后台管理等几大部分。使用简便,易于安装。 模块灵活,风格界面可适合任何网站。 Imagevue 2.8.10.2 更新内容: 哗'缓存添加到主屏幕脚本' 良好的懒加载在移动画廊 Double类在HTML Imagevue是一个Flash幻灯效果的在线相册网站程序,您可以用他制作一个完整照片或图片展示网站,您也可以把他做为一个画廊、相册整合嵌入到您现有的网站里去。只要通过FTP把Imagevue程序上传到您的服务器空间上就可以立即运行访问,您可以通过FTP或者Imagevue两种方式上传更新您的照片图库,新上传的照片会自动创建缩略图并展示出来。主菜单可以显示您的照片目录层次结构,您可以按照自己的想法随意的组织您的图库层次结构。通过Imageuve控制面板,您可以管理图库目录和图片文件,您可以轻松的更换模板,进行参数选项设置,创建标题和详细描述,还可以添加背景音乐,也可以在线播放flash动画和视频文件等。 imagegallery最早发布于2003年,之后在不断努力改进。现在已经发展到了Imagevue2。 运行imageVue基本要求:一个支持PHP的服务器或虚拟主机。另外,为了程序能够自动创建缩略图/预览图像,您的服务器需要安装有GD2扩展。 功能和特点: 1、FLASH相册:Imagevue最大的亮点是,它是一个炫酷的Flash相册程序。您看一下演示例站就会明白。而且允许你您方便的在线通过Imagevue后台控制面板去改变参数设置。 2、控制面板:通过控制面板您可以轻松的管理您的照片图库,包括创建目录、上传照片,而且您还可以创建页面,自定义页面标题和描述说明,可以对照片进行排序、重命名、删除、移动、复制、隐藏等操作,还可以创建设置预览图,可以更换或者编辑主题模板,可以设置编辑界面语言,可以自定义展示页面的显示效果细节。 3、HTML网页模式:Imagevue2还特意提供了一种HTML网页模式,更利于搜索引擎的收录,您可以通过CSS来实现自己想要的网页显示效果。 4、强大的配置:自由完全的配置参数和自定义主题模板,您可以改变颜色、背景、字体、视觉效果、按钮、交互功能等。 5、主题模板:您可以自由更换或者编辑imagevue自带的主题模板,也可以自己创建自己的主题模板。imagevue程序目前自带default, white, gardener, abyss, firestarter, bluedragon, persimmon, zanzibar等8种主题模板,但稍后imagevue官方将提供更多的主题模板供用户使用。 6、购物车模块:集成了一个功能齐全的照片打印和交易的商业解决方案。通过购物车模块可以实现完整的线上交易流程。客户选择照片、存放购物车、下订单、在线支付结算、打印并收发货等。您可以销售您的绘画、照片、卡片或者提供电子照片下载。而且您还能通过平台管理产品和价格。 7、共享到网络社区:通过imagevue界面的共享按钮,您的访问者可以轻松的将图片或者连接共享到流行的网络社区。 8、多国语言设置:imagevue本身已经自带多种国家语言,如果您使用自己的语言定制标题、描述、文字说明页及连接,您可以在imagevue后台使用语言设置。 9、目录保护:您可以为您特定的目录设置密码,不公开,访客如果要浏览需要输入密码。 10、缩略图编辑器:您有没有想过创建个性的缩略图,缩略图编辑器可以让你自由裁剪缩略图。 自定义缩略图显示风格:在缩略图显示页面中,你是否想过改变缩略图矩阵的排列布局,比如每个缩略图的大小和边框风格,缩略图之间的距离等等。您可以完全自由定制这些。 11、文件夹属性参数设置:可以对每个单独的照片目录的属性进行设置。比如你希望某个目录默认以照片展示方式显示还是默认以缩略图方式显示,当然你也可以设置成幻灯显示,还有很多可能性。您可以通过参数设置和主题设置来实现这些。 12、音乐播放器:imagevue带有音乐播放器,可以播放MP3音频文件做为音乐背景,让您的相册展示更有节奏和动感,音乐播放器有音乐播放列表、音量控制、ID3标签。播放的音乐文件可以放置在设定的某个目录下,也可以在不同的目录下存放不同的音乐文件做背景音乐。 13、flv视频播放器:imagevue支持flv动画视频在线播放,你只需要把flv视频文件上传到imagevue图库目录下即可在线播放。 14、文字说明页面:imagevue2不仅仅是个相册,它能实现一些其他的功能,比如他允许你创建文字说明或者HTML网页, 15、支持多种文件格式:imagevue不仅仅能显示图片,而且还支持一些其他富媒体文件格式,比如除支持JPG, PNG, GIF外还支持 SWF格式的flash动画 和FLV格式的视频文件,还支持DOC, PDF, HTML, QT等格式的文件,但是请注意这些文件格式可能会在新的浏览器窗口中打开显示,因为有些格式可能不能在Flash下直接展示。 16、自定义文件和文件模板:imagevue2允许加载用户自己制作的swf文件到页面中,比如自我介绍动画,传记页面等。文件模板可以预先设定为百叶窗、幻灯或者随机显示,当然也可以是您自己制作的其他效果。 17、自定义标题和描述:可以为文件定制标题和描述内容,并可以选择显示样式。还可以结合预告设置的项目,比如exif信息、日期、尺寸、大小等信息。 18、自定义CSS样式:没错,主题模板中的文字大小,字体,颜色、背景等等这些您都可以自由修改定制。在管理控制面板,主题CSS样式界面,你可以轻松的操作修改这些。 19、照片的EXIF信息:如果您是摄影师,您可以自定义照片EXIF信息显示哪些信息或者如何显示。 20、无限制的菜单层次结构:图片的目录层次结构是不限制的,您可以完全自由创建目录结构,而且在主菜单上您还可以自定链接。 21、深入的链接和导航:与其他FLASH网站不同是,Imagevue可以实现深层次的URL地址和导航,您可以把您看到的页面内容直接以URL地址链接的形式发送给你的朋友,他看到的内容就是你看到的页面内容。另外你还可以通过上一页或者下一页的按钮来浏览页面。当然,如果需要的情况下,您也可以禁止深层URL显示。 22、语言本地化:imagevue已经支持多很多国家的语言,包括瑞典语,德语,日语,英语,中文,芬兰文,阿拉伯文,荷兰,法国,匈牙利,意大利,拉丁美洲,挪威,波兰,俄罗斯,西班牙,土耳其语等,如果这些不是您的国家语言,您可自行添加自己的本地语言。 还有其他很多的功能和特点: 比如附加购买、热点等模块; 管理员可拖曳的方式整理文件夹或者图片; 多重背景,可以添加背景图片、标志,交互层等; 使用主菜单中的图形图标 自定义HTML网页嵌入到imagevue中; 全屏模式可以让浏览者获得更强的视觉冲击力; 图片大小自适应屏幕尺寸显示; 丰富的控制按钮和右键菜单;
##KodExplorer (http://kalcaddle.com/) ###ver2.61(2014.7.12) `商业版授权请联系:kalcaddle#qq.com` #### 1.是什么: - Kodexplorer为千帆网络工作室开发的一款服务器文件管理程序。 - 完美取代FTP管理:可用于服务器文件管理,zip解压缩 备份还原、支持图片、音乐、视频预览、office、pdf等格式在线预览。文件夹拖拽上传……。 - 在线编程:支持几乎所有编程语言的在线编辑(高亮,多光标编辑.堪比本地的sublime) - 极佳的操作体验:及其便捷的快捷键支持,让你拥有本地化的体验 - 中文等多语言支持:中文编码全面兼容,文件编辑自动适配。 - 超快的速度:全面采用Ajax+Json进行数据通信,毫秒级的响应速度; - 全平台兼容性:Win Linux Mac (Apache、Nginx、IIS) #### 2.使用场景: - 取代FTP,服务端、客户端软件等复杂的安装配置。kod可以一键安装随处使用. - 你可以用它来管理你的服务器(备份,在线解压缩,版本发布....) - 你可以把他当做管理linux的一个操作系统界面 - 可以用来作为私有云存储系统,存储你的文件... - 当然你也可以用来分享文件 - Web IDE / browser code editor awesomeness - 更多场景等你来挖掘!…… #### 3.使用说明 管理员: admin/admin 普通用户:demo/demo 游客用户:guest/guest [如何使用] 下载程序,解压上传到你的服务器路径下,data目录设置777权限。访问体验超便捷的服务吧! (data目录没有写权限会导致配置修改不能保存、不能新建用户等) [关于上传问题] 程序没有做任何限制,如果需要上传大文件,则修改 php.ini:`upload_max_filesize = 1000M post_max_size = 1000M` [关于解压缩问题] 程序不做任何限制,如若失败请设置php内存限制。memory_limit 1000M [关于兼容性] 建议使用chrome firefox ie9+ 体验更完整。ie8以下基本上不做兼容处理。chrome支持文件夹拖拽上传。 [文件打开] office文件在线预览功能,服务器必须在公网(外部能访问该服务器) [忘记密码] 修改data/system/member.php 密码为明文的md5值 例如将admin密码重设为admin 则修改第一行:"name":"admin","password":"21232f297a57a5a743894a0e4a801fc3" ![](https://cloud.githubusercontent.com/assets/3761968/2583304/764f562a-b9cf-11e3-8e59-afdbdffc20eb.png) ###ver2.61 `2014/7/12` ---- ####update: - 实时搜索,根据搜索框内容变化,实时选中匹配到的结果; - 弹出搜索框遍历子文件夹递归搜索 - session key 加入kod_前缀 避免和其他系统key冲突 - 编辑器选中优化 选择鼠标到窗口外事件处理 ####fix bug:(bug解决和程序优化) - backspace后退截获浏览器事件,作为后退前一次访问的文件夹; - 搜索首字母不匹配问题 - 弹出层中的弹出层关闭,父窗口失去焦点问题。 - 代码中grunt部分代码拆分开,放到程序外面;提交到git、osc - 桌面:删除alert enter快捷键删除 - install 检测 加入跳过,(只判断用到的函数) 加入多语言 - zip压缩没有权限 提示红色,false 统一查找 - 登录成功后 验证码输错清除 - 非root用户拖拽到文件夹问题 - 非root解压问题 不能解压 - list oexe 图标问题 - 用户目录不存在判断 - fileCahe 互斥锁 reset 不用 - ie 8~10样式问题调整 ###ver2.6 `2014/7/6` ---- ####update: - 完全性优化;加入严格的校验机制 - 首次运行环境检测[data目录检测,必须的函数支持提示] - 上传已存在处理——创建副本(另外包括粘贴,解压) - 选中优化 ctrl选中拖拽 - 键盘快捷键选中文件,多个字符
工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究 研究生姓名: 唐帅 导师姓名: 罗军舟 教授 苏生 教授 申请学位类别 工 程 硕 士 学位授予单位 东 南 大 学 工程领域名称 软 件 工 程 论文答辩日期 研究方向 Android+HTML5 学位授予日期 答辩委员会主席 评阅人 硕士学位论文 基于Android+HTML5的移动Web项目 高效开发探究 专业名称: 软件工程 研究生姓名: 唐帅 导师姓名: 罗军舟 校外导师: 苏生 THE RESEARCH OF EFFICIENT DEVELOPMENT OF MOBILE WEB PROJECTS BASED ON ANDROID AND HTML5 A Thesis Submitted to SoutheastUniversity For the Academic Degree of Master of Engineering BY Tang Shuai Supervised by Luo Junzhou and Su Sheng College of Software Engineering SoutheastUniversity February 2017 东南大学学位论文 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 研究生签名: 日期: 东南大学学位论文使用 授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文和在技术保护期限内的论文外,允许论文被查阅和借阅,可以公布(包括以电子信息形式刊登)论文的全部内容或中、英文摘要等部分内容。论文的公布(包括以电子信息形式刊登)授权东南大学研究生院办理。 研究生签名: 导师签名: 日期: 摘要 目前工业市场上认证检测领域,业务流程陈旧繁琐,用户与检测机构无法便捷有效的沟通。除此之外,用户需要亲临检测机构实地送检,在检测的每一个环节用户也无法有效的进行追踪,这些都制约着认证检测领域的进一步发展。鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作。 然而,由于HTML5的W3C标准规范还未制定,安卓系统中类浏览器Webview自身存在一些局限性,因此仍存在着诸多问题亟需解决,包括:(1)多窗口类浏览器模式问题。安卓上用于加载的Webview视图窗口只是作为类浏览器而存在,在安卓上更是只能同时运行一个Webview。(2)跨域数据交互问题。不同的Webview之间无法共享数据。(3)页面自适应问题页面难以兼容适应不同分辨率的设备和浏览器。 本文研究并设计了基于Android+HTML5的在线认证检测系统,主要工作包括以下四个方面: (1)针对多窗口类浏览器模式问题,指出并分析了该问题存在的原因,利用Activity的运行机制,通过Fragment栈对主要模块的Webview进行管理,实现对不同模块之间切换的控制。 (2)针对跨域数据交互问题,指出并分析了跨域缓存交互问题出现的原因,通过在HTML5存储技术的基础上,重写LocalStorage,用移动端本地的Sqlite进行数据维护,实现跨域数据交互。 (3)针对页面自适应问题,本文结合渐进增强以及拥抱流式布局的思想,同时研究利用了移动设备的视口特性,实现跨分辨率、跨设备的页面自适应。 (4)针对系统的功能实现问题,通过结合利用原生态框架与HTML5的跨平台性,实现了“认我测”在线认证检测系统。 综上所述,“认我测”在线认证检测系统,率先填补了认证检测领域移动端的空缺,提供了Web浏览器+移动端的双端访问模式,给用户提供了多种访问途径,真正实现了用户和检测机构的随时随地在线下单检测。 关键词:HTML5,检测与认证,Android,多窗口浏览器模式,跨域处理,页面自适应 Abstract At present business processes are old and explicit in industrial market of certification and detection filed, as well as users can not have effective and convenient communication with detection institutions. Apart from these, customers have to come to detection institutions personally to send samples, and they can not take effective trace of each process during detection. All of these limit the advanced development of certification and detection field. As the versions, types and resolution of users' mobile phones vary in current market, conditional ways depending on systems respectively cost extra time and resources. In order to develop efficiently and save cost of projects, this paper combines android with HTML5 to design and start the development of mobile web system. However, due to standard specification of W3C of HTML5 hasn't been drafted, and browser-alike webview in android has several limits itself, there are still many problems to be solved. Including: (1) Multi-window browser pattern. Webview window in android used to load pages just works like browser, as well as there is only one webview running at the same time. (2)Cross-domain data interaction. Different webviews can not share data. (3)Self-adaption of pages. It is difficult for pages to adapt to devices and browsers of different resolution. This paper researched and designed an online certification and detecting system based on Android and HTML5. Four main parts are included as following: (1) Considering multi-window browser problem, this paper pointed out and analysed reasons of it. The running mechanism of Activity was used cleverly and webiews of main modules were managed through Fragment stacks, in order to control the switch among different modules. (2)Considering cross-domain data interaction problem, reasons of it were pointed out and analysed. LocalStorage was overrided based on HTML5 storage technics, and local sqlite was used to maintain data in order to realize cross-domain data interaction. (3)Considering self-adaption of pages, the system combined the ideas of progressive enhancement and embracing flow layout, aiming at personalitites of mobile facilities viewports, and realized respective solution. (4)Considering the implementation of system functions, the system took the advanteges of native frameworks as well as HTML5 crossing platforms, and developed "Finding Me Detecting" online certification and detecting system. In summary, "Finding Me Detecting" online certification and detecting system filled up blanks of mobile market in certification and detecting field, provoding double side access pattern, that is to say web browser together with mobile side, offering users various ways to access the system, and really realized the goal of whenever and wherever ordering to detect for users and detecting companies. Keywords: HTML5; Quality Authentication; Android; Multi-window browser; Cross-domain data; Page self-adaption 专业名词清单 专业名词 名词解释 HTML5 万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改 Android 一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导开发 IOS 由苹果公司开发的移动操作系统 Webkit 一个开源的浏览器引擎,在手机上的应用十分广泛 Webview WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页 Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与用户交互的组件 SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决方案之一 LocalStorage 本地永久性存储数据,除非显式将其删除或清空 SessionStorage 存储的数据只在会话期间有效,关闭浏览器则自动删除 Sqlite 一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中 W3C 万维网联盟,创建于1994年,是Web技术领域最具权威和影响力的国际中立性技术标准机构。主要的工作是发展 Web 规范,这些规范描述了 Web 的通信协议(比如 HTML 和 XHTML)和其他的构建模块。 NativeApp 使用传统原生态Android SDK来实现的应用 WebApp 基于浏览器来实现的一种应用 HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行 优雅降级 一开始就构建站点的完整功能,然后针对浏览器测试和修复。认为应该针对那些最高级、最完善的浏览器来开发网站。而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段 渐进增强 一开始只构建站点的最少特性,然后不断针对各浏览器追加功能。先让网站能够正常工作于尽可能旧的浏览器上,然后不断为它在新型浏览器上实现更多的增强和改进。 Viewport 移动设备上的Viewport就是设备的屏幕上能用来显示网页的一块区域,即浏览器上用来显示网页的那部分区域。Viewport不局限于浏览器可视区域的大小,可能比浏览器的可视区域要大,也可能比浏览器的可视区域要小。 媒体查询 CSS媒体查询允许开发者基于浏览网站的设备的特性来应用不同的样式申明,最常用的特性是视口宽度。 GCF 谷歌内嵌浏览器框架, 使用此插件,用户可以通过Internet Explorer的用户界面,以Chrome内核的渲染方式浏览网页。Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关研究现状 2 1.2.1 在线认证检测平台开发现状 2 1.2.2 HTML5 3 1.2.3 Android 3 1.2.4 Android移动Web项目开发的三种解决方案:Native, Web和Hybrid优缺陷分析 4 1.2.5国内外应用现状 6 1.2.6 研究现状总结 7 1.3研究目标与内容 7 1.3.1多窗口浏览器模式的实现机制 7 1.3.2跨域交互即缓存处理方法 7 1.3.3页面自适应机制,即设备自适应与浏览器自适应机制 8 1.3.4 “认我测”质检服务平台的设计和实现 8 1.4 本文的结构安排 8 第二章 多窗口类浏览器设计 11 2.1 多窗口类浏览器需求分析 11 2.1.1 Activity简介 11 2.1.2 Fragment简介 11 2.1.3 多窗口类浏览器需求 12 2.2 多窗口浏览器模式的实现机制 12 2.2.1安卓移动端多窗口浏览器框架 12 2.1.2多窗口浏览器模式实现机制 13 2.3 模块实现 13 2.3.1类浏览器模式 13 2.3.2多窗口类浏览器模式 14 2.4 本章小结 15 第三章 跨域交互缓存处理设计 17 3.1 跨域交互缓存处理需求 17 3.1.1 缓存技术WebStorage 17 3.1.2 跨域交互缓存处理需求 17 3.1.3 页面回退管理需求 17 3.2 缓存处理机制 18 3.2.1 跨域缓存处理 18 3.2.2页面回退管理 18 3.3 模块实现 19 3.3.1跨域缓存机制的主要实现 19 3.3.2.页面回退管理的实现 22 3.4本章小结 22 第四章 页面自适应机制设计 23 4.1页面兼容策略 23 4.2 页面自适应策略 24 4.2.1设备自适应 24 4.2.2.浏览器自适应 25 4.3 模块实现 25 4.3.1根据适口属性设计响应式布局: 26 4.3.2同分辨率范围内的流式布局设计 26 4.3.3移动端viewport属性设定 27 4.3.4组件样式的渐进增强设计 27 4.4 本章小结 27 第五章 认我测在线检测服务系统设计 29 5.1认我测在线检测服务系统需求分析 29 5.2 系统时序流程 29 5.3 系统功能模块图 30 5.4 本章小结 32 第六章 认我测在线检测服务系统实现与测试 33 6.1认我测在线检测服务框架设计 33 6.2 系统运行环境搭建及配置 34 6.2.1 AndroidManifest.xml主程序环境配置 34 6.2.2 移动端工程资源布局 35 6.3 认我测在线认证检测系统的主要功能实现 36 6.3.1用户查询 36 6.3.2订单操作 37 6.3.3个人信息维护 37 6.4.系统功能测试 38 6.4.1 首页功能模块 38 6.4.2 订单功能模块 38 6.4.3 个人信息模块 39 6.4.4页面自适应 40 6.5 本章小结 41 第七章 总结与展望 43 7.1 工作总结 43 7.2 研究展望 44 致谢 47 参考文献 49 第一章 绪论 1.1 研究背景与意义 目前市场业务中在产品以及其他项目的认证和检测方面存在诸多不便,用户需要实地考察并频繁与检测单位沟通,填写繁琐的纸质检测告、当面送递样品,对于检测环节中存在的问题难以及时交互并处理。市场上相应的检测平台诸如检测通、凡特网等皆为pc端检测网站,并且操作繁琐不够人性化,用户在实地使用中存在很多问题。昆山工业技术研究院着眼于为委托用户和质检机构搭建良好的沟通桥梁,免去目前市场业务中企业用户需要实地地并频繁地与检测机构沟通,从而提出自己的委托乃至下委托单、等待检测告等,设计并研发了市场上首款提供质检服务的移动端app,即“认我测”质检服务平台系统,用户只需在手机上安装轻盈小巧的系统app,即可方便快捷的进行委托服务,质检机构亦可便捷地处理请求订单,双方都可以实时追踪委托订单的状态变化。 考虑到目前市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统(如android、ios)分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本、提高项目开发效率,并迎合近年来新兴的HTML5移动页面开发技术,公司采用Android+HTML5相结合的方式进行移动端系统的研发工作。系统的主体一次开发即可在不同设备,包括不同系统、不同型号、不同分辨率设备上运行,免去了大量冗余的开发工作,提高项目的开发效率,降低项目的开发维护成本,为用户提供便捷服务。项目的封装框架只需根据系统的不同稍微改动定制即可,传统的多套系统项目现在只需一次开发,即可适应于不同机型。此外系统还可以通过微信公众号推广链接进行访问,大大的增强了系统的可扩展性和用户操作的便捷性。 然而,由于HTML5的W3C标准规范还未制定,安卓系统中类浏览器Webview自身存在一些局限性,使得结合安卓与HTML5开发移动web项目仍处在探索研发阶段,还不够成熟和完善,相应的技术支持也比较有限,因此仍存在着诸多问题亟需解决,包括: (1)多窗口浏览器模式问题。安卓用于加载的Webview视图窗口只是作为类浏览器而存在,并不等同于pc浏览器,在安卓上更是只能同时运行一个Webview,每次加载新的页面都只能覆盖掉原先的页面,无法达到网页浏览器的多窗口模式。通过常规的pc浏览器窗口的相应open、close进行新增窗口、关闭窗口等操作,在Webview类浏览器窗口中都无法正常运作,甚至会导致Webview失去响应。为此,需要研究相应的解决方案,用于模拟用户适应的网页多窗口浏览器模式。(2)跨域交互问题,即缓存机制与浏览记录管理问题。不同于网页浏览器,用户的数据可以在不同的窗口之间共享,Webview由于其模块之间无法共享数据的机制为保存用户信息以及共享其他程序数据带来了巨大难题。为此需要区分数据是同模块内部共享还是跨域共享访问,并提供相应的解决方案。Webview通过模拟多窗口浏览器模式运作后,在不断的新开页面以及不同模块之间互相切换,会导致页面回退时历史浏览地址发生覆盖,使得不同模块无法回到相应的上级页面,为此需要有效的对页面的浏览历史进行管理,并提供切实可行的方案。(3)页面自适应问题,即设备自适应与浏览器自适应问题。针对移动设备繁杂的屏幕分辨率,如何让页面进行分辨率自适应,从而发挥相对于原生态安卓开发的优势,是一个需要探索和解决问题。考虑到高效开发设计以及便于推广应用,HTML5的界面不仅仅需要适应基于Webkit内核的Webview,还要能够方便的应用于PC端的网页,如何让HTML5的网页能够适用不同的浏览器内核,也是一个亟待解决问题。 为此,如何使得“认我测”质检服务平台中安卓与HTML5的结合开发满足多浏览器模式,并解决跨域之间的数据交互问题,同时提高页面的设备自适应和浏览器自适应能力,成为跨平台移动web项目高效开发所亟待解决问题。 1.2国内外相关研究现状 1.2.1 在线认证检测平台开发现状 互联网界目前在检测领域存在部分在线检测认证的平台,诸如华强认证、检测通等,可以为用户提供一些简单的检测申请,以及为检测机构提供平台发布相关信息。 图1.1 华强认证检测平台首页 如上图所示,在华强认证平台上用户可以选择认证或者检测服务,针对相应类型进行筛选。根据待检测的种类不同,选择相应的检测机构资质、证书、检测周期等查询结果,根据查询结果选择检测机构进行检测委托。检测机构与平台合作,提供负责的检测服务项目、价格等信息,在平台上开设个人站点,提供数据给平台,用于用户检索。 与时下常见的电商网站类似,此类检测平台都提供检测方设计自己的网站主页以出售检测服务,同时为用户提供检索结果、显示可购买的检测服务,用户可以选择质检服务并加入购物车、下单、查看检测方详情、与卖家(检测方)沟通检测细节等操作,但是这些平台都存在着共同的问题——流程不够清晰明了、检测服务不够个性化、用户操作繁琐等,这些问题给用户和检测机构的使用以及交流带来了很多不便。平台提供的检测项目有限,很多时候用户无法确定自己需要检测的项目所属,也不能有效地与检测方进行沟通。与此同时,认证检测领域对于移动端的涉及基础为零,目前主流移动端市场没有相应的认证检测服务产品,随着移动产品愈发便捷,在移动端研发设计相应的认证检测产品,使得用户可以随时随地进行下单咨询变得愈发重要。 1.2.2 HTML5 为了方便用户的使用,“认我测”认证检测平台的PC端基于B/S架构,其设计和研发离不开浏览器内核支持,同时移动端的Web开发也同样需要HTML5语言的支持。利用HTML5的崭新特性,能够更好地为用户提供服务。 HTML5是用于取代1999年所制定的HTML4.01和XHTML1.0标准的HTML(标准通用标记语言下的一个应用)标准版本;现在仍处于发展阶段,但大部分浏览器已经支持某些HTML5技术。HTML5有两大特点:首先,强化了Web网页的表现性能。其次,追加了本地数据库等Web应用的功能。 HTML5广义上为包括HTML、CSS和JavaScript在内的一套技术组合。减少浏览器对于需要插件的丰富性网络应用服务,如Adobe Flash、Microsoft Silverlight与Oracle JavaFX的需求,并且提供更多能有效增强网络应用的标准集。目前HTML5已向开发人员提供了很多新的标签,如section,nav,article,header和footer等。这些标签语义化程度高,被广泛使用。 HTML5逐渐为移动Web开发所采纳,主要原因在于其适用移动项目开发的八大特性,即离线缓存、音频视频自由嵌入、地理定位、Canvas绘图、丰富的交互方式、低开发维护成本、CSS支持以及调用手机硬件。其中离线缓存可以看做是加强版的cookie,不受数据大小限制,有更好的弹性以及架构,可以将数据写入到本机的ROM中,还可以在关闭浏览器后再次打开时恢复数据,以减少网络流量。音频视频方面HTML5无需拆分开混排的多媒体内容,可以将文字、图片、音频、视频等放在一起进行处理。HTML5提供地理定位的支持,无需专属导航软件,通过缓存即可加载地图数据,方便灵活。在系统开发和维护方面,打开即可使用最新版本,免去重新下载升级包的麻烦,使用过程中就直接更新了离线缓存。除此之外,HTML5增强了对CSS样式的支持,极大的增强了界面的美化和友好性,提高了用户体验。 1.2.3 Android Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。 Android是一个真正意义上的开放性移动设备综合平台。它包括操作系统、用户界面和应用程序-移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 在开发之初,Android平台就被设计成一个由一系列应用所组成的平台。所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于在应用和硬件资源间进行通讯的API。Android打破了应用之间的界限,开发人员可以把Web上的数据与本地的联系人、日历、位置信息结合起来,为用户创造全新的用户体验。此外应用程序不仅可以通过标准API 访问核心移动设备功能、互联网,应用程序还可以声明它们的功能供其他应用程序使用。 考虑到移动端市场主流操作系统的使用情况、移动领域的发展趋势以及Android操作系统的开源性,系统采用Android操作系统为研究对象,在其基础上进行设计和研发,使得认证检测产品能够为主流用户所使用,为用户带来便捷。 1.2.4 Android移动Web项目开发的三种解决方案:Native, Web和Hybrid优缺陷分析 Native app是用传统原生态Android SDK来实现的应用;Web app是基于浏览器来实现的一种应用。 Hybrid app是一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行。对用户来说,Hybrid App与Native App很难区别。二者都可以从应用程序商店或市场下载,存放在移动设备上,运行方式完全如同其他任何应用程序。但是对开发者来说,却存在巨大的差异,因为其无需为每一种移动操作系统从头开始重新编写应用程序,而是只要用HTML、CSS和JavaScript编写其中一部分应用程序代码,即可在多个设备上重复使用。 以下是三种技术各自的优缺点。 Native app Web app Hybrid app 系统特性 可以完美发挥系统特性(调用系统服务、内存管理等); 操控设备硬件(如相机、蓝牙、振动器等) 无法充分发挥系统特性(调用系统服务、内存管理等); 无法操控设备硬件(如相机、蓝牙、振动器等) 可以发挥大部分系统特性(调用系统服务、内存管理等); 可以通过JavaScript API操控设备硬件(如相机、蓝牙、振动器等) 用户体验 可提供最佳的用户体验,最优质的用户界面,最华丽的交互; 支持消息推送 用户体验较差; 图片和动画支持性不高; 不支持消息推送 可提供较好的用户体验; 支持消息推送 本地资源 可访问本地资源 不支持访问本地资源 可访问本地资源 应用更新 获得新版本时需重新下载应用更新,不够方便 跨平台开发、用户不需要下载安装App,开发速度快 可以下载新应用更新,也可在线更新 适用场景 适合制作游戏等性能要求比较高的应用 对于对界面的灵活性有较高要求的app 适用于对画面表现特别高以外的主流需求 开发成本 各平台不兼容,多平台的开发、移植比较复杂,开发成本高,开发周期长,开发成本高; 维护多个版本的成本比较高; 针对多种设备(不同分辨率、不同硬件配置等)的调试和适配较麻烦,维护成本高; 纯HTML5快速开发,较低的开发成本; 支持设备广泛,基于浏览器,跨平台性,维护成本低; Native+HTML5 针对不同系统制定系统外壳,页面部分可重用,大大降低开发成本; 可直接在线更新,更新成本低; 跨平台性,无需针对不同平台开发多个版本应用。 网络要求 支持离线使用 非常依赖网络,网络不稳定等其他环境时,用户请求页面的效率大打折扣 大部分功能依赖网络 考虑到系统需要提供较好的用户体验、用户与检测机构能够利用消息推送进行实时沟通、用户的查询和下单操作默认已具备网络环境等因素,因此为了更好地利用移动端本地硬件支持以及实现跨平台、跨设备的开发,系统采取了Hybrid混合开发模式。通过在原生态框架中嵌入Webview类浏览器,主体页面采用HTML5开发,由原生态定制系统框架,这样在更换移动端操作系统时,只需相应更换系统外壳,主体部分可以重复利用,极大地减少了研发成本,提高了系统的可复用性。系统主体部分更新时,无需在应用市场中重新下载,应用HTML5的特性在线更新缓存即可方便地获取最新版本,为用户带来了便捷。 1.2.5国内外应用现状 图1.2 智能手机操作系统分布数据 市场调研公司Kantar Worldpanel ComTech发布的智能手机操作系统数据显示,截至2016年2月末的三个月内,Android中国城市的销售份额从去年同期的73%增至76.4%。而在美国和欧洲五大市场(包括英国、德国、法国、意大利和西班牙),Android的市场占比继续保持增长态势。因此系统选取市场移动端主流操作系统Android作为基础,进行移动端认证检测产品的研发和设计。 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发效率的要求,这时使用IOS&Andriod开发一个APP的成本相对过高,而HTML5的低成本、高效率、跨平台等特性马上被利用起来形成了一种新的开发模式:HybridAPP。 作为一种混合开发的模式,Hybrid APP底层依赖于Native提供的容器(UIWebview),上层使用Html&Css&JS做业务开发,底层透明化、上层多多样化,这种场景非常有利于前端介入,非常适合业务快速迭代。Hybdrid作为目前主流的移动端开发设计模式,能够极大的利用Native和HTML5的优势,将性能与用户体验相结合,缩短跨系统的产品研发周期,给用户和研发都带来极大的便利。混合型APP软件兼具“原生型APP软件良好用户交互体验的优势”和“网页型APP软件跨平台开发的优势”。市场上一些主流移动应用都是基于混合型APP软件的方式开发,比如工商银行、百度搜索、街旁、东方航空、微信、去哪儿等。 目前已有众多企业采用混合型APP软件技术开发APP应用,一方面是开发简单,另外一方面可以形成一种开发的标准。企业封装大量的原生型的原生插件如支付功能插件供Java调用,并且可以在今后的项目中尽可能的复用,从而大幅降低开发时间和成本。混合型APP软件的标准化给企业移动应用开发、维护、更新都带来了极高的便捷性。 混合型APP软件通常是基于第三方跨平台移动应用引擎框架进行开发,在国内开发者中比较知名的有PhoneGap、Titanium和AppCan。这些引擎框架一般使用HTML5和Java作为编程语言,调用引擎封装的底层功能如照相机、传感器、通讯录、二维码等。HTML5和Java只是作为一种解析语言,真正调用的都是原生型APP软件一样封装的底层功能,这是和网页型APP软件的最大区别和不同。因为使用了浏览器技术,所以混合型APP软件通常具有跨平台的特性,并且开发成本和网页型APP软件接近,开发效率也远高于原生型APP软件。根据国际科技媒体ReadWriteWeb 2015数据统计显示,截至2015,有80%的App全部或部分基于HTML5研发。大部分的App内容以网页的形式呈现,包括微信、Facebook、Twitter等。为此,Hybrid混合模式成为“认我测”在线检测服务平台移动端框架的开发和设计依赖。 尽管微信通过公众号的形式,使得Android+HTML5模式得以应用并推广,这项技术目前仍不够完善,利用web实现移动app存在一些瓶颈。(1)根据百度移动互联网发展趋势告,iPhone下载一个1.407k的网页,建立连接耗时1.35s左右,传输耗时0.15s左右。这样,导致app在建立连接的时候,屏幕处于白屏状态。app在一秒多的时间内,完全处于白屏状态,加上3G、GPRS网络的不稳定,有时候等待app响应需要几秒甚至1几秒的时间,对于mobie app来说,这是个致命的缺陷。(2)难以实现本地存储。基于Android存在多版本系统,Android低版本中的Webkit对HTML5和CSS3不能够很好地支持。常用的HTML5向后兼容方案是通过Javascript+CSS+Html来模拟HTML5的一些特性,但过多的js存在于移动app中会得不偿失。 Android+HTML5的混合开发模式对于移动端Web项目开发已经成为市场的主流和趋势,与此同时这项技术还存在着一些问题,需要不断的进行改进和完善。 1.2.6 研究现状总结 总而言之,Android操作系统在移动市场仍居主流,HTML5也为用户带来崭新的特性,Hybrid混合开发模式也逐渐成为移动Web开发的主流设计模式,大量的市场应用都成功的应用和推广了Android+HTML5。正是在这种背景下,“认我测”在线认证检测系统率先填补了移动端认证检测领域的产品空缺,采取了Hybrid混合开发模式。同时,利用Android+HTML5相结合开发移动端Web项目尚处于应用阶段,仍然存在很多问题,还不够成熟和完善。如何将这二者更有效的结合使用,并解决过程中存在的问题,提高项目开发的效率以及节约开发成本,是一个需要研究探索的问题,这也是本课题的意旨。 1.3研究目标与内容 1.3.1多窗口浏览器模式的实现机制 深入挖掘Webview作为类浏览器视图窗口与传统PC端浏览器的区别,针对安卓端同一视图区域单一运行Webview的特性,通过在原生态安卓中启用Fragment视图加载不同视图页面,在外部Activity中对Fragment进行管理控制。同时调整窗口加载及操作模式,适应移动端相关操作从而实现程序中加载多个Webview视图窗口并可以随意切换,实现类浏览器多窗口加载资源并交互的模式。 1.3.2跨域交互即缓存处理方法 针对Webview不支持多窗口间跨域访问问题,重写缓存处理方式以替代网页端会话级缓存机制,模拟web端本地存储localStorage对本地缓存的处理方法,诸如setItem()、getItem()、removeItem()以及clear(),通过将持久化数据存储在移动端本地数据库来模拟网页端数据持久化存储,实现多Webview间跨域交互访问以及缓存数据保存和处理。 通过维护Webview的历史栈,根据需求进行过滤跳转或者重新加载页面。若当前为重定向后的链接,那么回退的时候就需要忽略上一级的链接,不使用Webview自带的回退方法goBack(),相对地移除重定向和重定向后的url,获取到初始页面链接后自行进行loadUrl()操作. 1.3.3页面自适应机制,即设备自适应与浏览器自适应机制 利用Viewport来控制页面的缩放比例、页面的初始大小,针对不同分辨率的移动设备实现网页页面自适应。通过渐进增强以及优雅降级机制来控制不同版本、不同浏览器之间的兼容问题,以及利用JavaScript库辅助修正相应的样式问题,从而实现浏览器适配的机制。 1.3.4 “认我测”质检服务平台的设计和实现 移动客户端通过安卓与HTML5结合开发设计委托方和质检方app,通过原生态安卓框架外壳嵌入Webview渲染加载页面,添加Java接口与消息会话模块,通过移动端Sqlite操作数据重写localStorage来实现缓存机制,利用Fragment视图层控制Webview的切换与运行来展现主要的功能模块—委托方App:首页模块、订单模块、消息模块和个人模块;质检方App—订单模块、消息模块和个人模块。 服务器端采用J2EE的SSH框架搭建项目,通过微信公共账号链接Html页面,为用户提供多种系统访问途径,增强了系统的可扩展性,为用户带来便利。 1.4 本文的结构安排 本文共分为七个章节。 第一章是绪论部分,介绍课题的研究背景,指出课题的研究意义。然后通过对HTML5研究、Android移动Web开发技术研究以及Hybrid开发问题研究来介绍该课题在国内外的研究现状。最后说明本文的研究目标与内容,以及论文的结构安排。 第二章介绍多窗口类浏览器模式策略的设计与实现。针对现有移动端单一窗口存在的不足,提出类浏览器多窗口解决方案,并对多窗口浏览器模式进行设计 第三章其次分析Webview的跨域数据交互问题,针对移动端类浏览器内核不支持跨域数据访问的不足,提出本地持久性存储替代web端缓存的解决方案,并对跨域访问模式进行设计。同时分析了页面重定向导致的页面无法正常访问问题,提出采用页面浏览历史栈的管理方案,针对回退时目标页面解析进行相应操作。 第四章是多分辨率多设备页面自适应策略设计。首先分析现有Web页面在移动端不同分辨率和设备显示存在的问题,针对页面难以在不同设备上保持兼容适应的不足,提出页面自适应解决方案,并通过渐进增强以及媒体查询等方式进行设计。 第五章是认我测系统的设计,包括系统的功能需求分析、业务流程展示以及功能模块设计。 第六章是系统的功能测试,介绍了相关的实现环境与工具,并对系统的主要功能模块以及主要解决方案进行了功能验证测试。 第七章是总结展望部分,总结本文的主要工作内容与创新点,并对本文写作与实验过程中的不足及后续研究进行展望。 第二章 多窗口类浏览器设计 2.1 多窗口类浏览器需求分析 2.1.1 Activity简介 在Android中一个Activity是一个应用程序组件,它提供一个屏幕,用户可以为了完成某项任务用来交互,例如拍照、拨号、看地图、发送邮件等。每一个Activity被系统给予一个窗口,在该窗口上面可以绘制用户接口。一个应用程序通常由多个Activities组成,他们通常是松耦合关系。通常首次启动应用程序的时候呈现给用户的Activity被指定为"Main Activity”。为了完成不同的动作,每一个Activity可以启动另一个其他的Activity。一个新的Activity启动,前一个Activity就被终止了,但是系统将Activity保存在一个栈上。当一个新Activity启动,它被推送到栈顶,取得用户焦点。栈的管理符合“后进先出”原则,所以,当用户完成当前Activity然后点击back按钮,它被弹出栈并且被摧毁,然后恢复之前的Activity。 若一个Activity因新的Activity启动而停止,系统通过Activity的生命周期回调函数,通知其这种状态转变。一个Activity根据它自己的状态变化可能会收到许多回调函数的通知信息,诸如系统创建、停止、恢复或者摧毁Activity,每个回调都使得开发者得以完成相应状态的指定工作。例如,当停止Activity的时候,应该释放所有大的对象,如网络数据库连接。当Activity恢复时,开发人员可以重新获得必要的资源和恢复被中断的动作。这些状态转换都是Activity的生命周期的组成部分。 2.1.2 Fragment简介 Android 3.0中开始引入Fragments 的概念,可以称为:碎片、片段。其目的是为了解决不同屏幕分辨率下动态和灵活的UI设计,大屏幕如平板、小屏幕如手机。平板电脑的设计使得其有更多的空间来摆放更多的UI组件,而多出来的空间存放UI使得这些组件会产生更多的交互,从而诞生了Fragments。 Fragments 的设计不需要开发者来亲自管理视图层的复杂变化,通过将Activity 的布局分散到Fragment 中,可以在运行时修改Activity 的外观,并且由Activity 管理保存其变化。当一个片段指定了自身的布局时,它能和其他片段配置成不同的组合,在活动中为不同的屏幕尺寸修改布局配置。小屏幕可能每次显示一个片段,而大屏幕则可以显示两个或更多。Fragment是Activity的界面中的一部分或一种行为。可以把多个Fragments组合到一个Activity中来创建一个多面界面并且可以在多个Activity中重用一个Fragment。除此之外,可以把Fragment认为是模块化的一段Activity,它具有自己的生命周期,接收它自己的事件,并可以在Activity运行时被添加或删除。 Fragment不能独立存在,它必须被嵌入到Activity中,而且Fragment的生命周期受到所在的Activity的影响。当Activity暂停时,它拥有的所有的Fragments都被暂停;当Activity销毁时,它拥有的所有Fragments都被销毁。然而,当activity运行时(在onResume()之后,onPause()之前),可以单独地操作每个Fragment,比如添加或删除它们。在执行上述针对Fragment的事务时,可以将事务添加到一个栈中,这个栈被Activity管理,栈中的每一条都是一个Fragment的一次事务。有了这个栈,就可以反向执行Fragment的事务,这样就可以在Fragment级支持“返回”键(向后导航)。 2.1.3 多窗口类浏览器需求 在Android中展现在用户面前的Activity同时只能存在一个,而由于类浏览器内核Webkit的特性,一个Activity中同时只能加载一个Webview用以渲染网页,如果用户想模仿Web浏览器新增一个浏览器标签窗口打开页面,只能将原来的网页覆盖掉,无法在窗口间来回切换,用户也无法保持原有的浏览器使用习惯。为此,需要利用Activity栈的切换特点,将系统的主要模块分别设计在不同的Fragment上,通过各自的Webview进行加载渲染,在用户需要切换窗口时,通过管理切换Fragment达到目的的实现。 2.2 多窗口浏览器模式的实现机制 2.2.1安卓移动端多窗口浏览器框架 图2.1 多窗口浏览器模式系统框架图 如图4所示,系统安卓移动端由首页、订单、消息以及个人信息四个模块构成,每个模块对应一个视图层Fragment,在安卓Activity运行时一次加载一个视图Fragment,通过底部的原生态菜单栏BottomBar进行视图之间的切换。每个视图Fragment对应同一个位置的Webview类浏览器窗口,通过Webview加载所需要的页面,通过外部的Fragment对Webview的加载以及切换进行控制,从而实现类浏览器多窗口模式。 2.1.2多窗口浏览器模式实现机制 多窗口浏览器模式的实现原理为:安卓外部Activity控制视图层Fragment的加载和切换,Fragment内部加载和控制Webview对页面的渲染,同时调整Web端页面的窗口打开和关闭模式,通过页面重定向进行打开和关闭返回。 多窗口浏览器模式解决两个问题,一是安卓中的类浏览器窗口模式,二是浏览器多标签模式。在移动端的页面加载过程中,类浏览器内核Webview的运行机制为覆盖加载页面,一次运行期间只同时存在一个Webview,与PC端浏览器的运行模式不同,无法通过open打开一个新的浏览器标签页,也无法通过close关闭单个的标签页。为此需要通过loadUrl进行页面重定向,在关闭页面时通过loadUrl反重定向或者通过Webview本身的goBack方法进行回退。移动端的Webview在全局意义上等价于PC端的浏览器,但是通过close关闭的不是一个窗口,而是关闭了整个浏览器。安卓中Activity运行时只能加载一个Webview,因此无法同时展现不同的页面,为此需要通过外部对Webview序列的控制,模拟多窗口显示页面的模式。 在安卓Activity的视图View初始化过程中,实例化需要首次显示的视图层fragment (如首页),将其放入实例化的视图层管理容器HashMap,并通过changeFragmentFrom Menu方法控制用户对视图层Fragment的切换,将原有的视图层置为等待恢复状态,并激活新的视图层用以在Activity中展现,通过changeFragmentBack控制用户通过回退操作唤醒的首页视图层,以此来控制不同视图层,即类浏览器窗口之间的切换。在相应的Fragment视图层中,初始化视图InitView时渲染加载Webview,同时控制底部的菜单栏,通过Webview加载相应的本地网页或服务器端网页,设置Webview相应的属性进而控制页面由Webview加载,而非默认的系统浏览器加载。为Webview绑定页面与原生态安卓相交互的接口,从而可以在加载的页面内调用安卓的原生态功能。 2.3 模块实现 2.3.1类浏览器模式 该部分主要为安卓中通过Webview渲染加载网页的过程。主要包含以下过程: Fragment布局文件中声明控件Webview,绑定其资源ID,为Webview设置宽度和高度。 (1)在Fragment视图初始化initView部分,利用findViewById()通过资源ID获取到Webview控件,对其进行初始化,同时设置相关的webSettings属性,让Webview可以运行JavaScript脚本以及能与本机数据库进行交互。 (2)重写WebViewClient的shouldOverrideUrlLoading()函数,让应用程序的Webview直接加载网页内容,而不调用外部的浏览器。 (3)重写Webview网页对话框,构建一个Builder用以显示网页中的对话框,在点击确定按钮之后,继续执行网页中的操作,同时关闭Builder对话框。 (4)为JavaScript创建安卓接口。通过addJavaScriptInterface为Webview绑定底层Java接口,同时提供相应的接口方法名以及在页面中可以调用的句柄名称,通过该句柄和方法名,即可在Html5页面JavaScript访问该底层的Java方法,实现对页面上部和底部的系统外壳的展示管理。 (5)通过loadUrl进行对目标页面的渲染加载,可以加载访问服务器端的页面,也可访问放置在项目内部的页面文件,该模式需要将相应页面放置于系统的assets目录下。相对而言服务器端页面更加常用,也便于维护。 2.3.2多窗口类浏览器模式 图2.2 多窗口类浏览器模式原理图 (1)创建各个主功能模块的视图类Fragment,分别为主界面模块HomeFragment、订单模块OrderFragment、聊天咨询模块MessageFragment以及个人中心模块PersonalFragment,继承自基类BaseFragment。 (2)每个Fragment视图类中声明并初始化相应的Webview组件,对其进行属性设置,为其绑定JavaScript接口并覆盖渲染加载页面的方法,绑定相应的需要在页面调用的底层Java方法接口。重写默认的页面回退响应事件,对页面访问历史以及目标访问页面进行过滤判断,执行相应的处理方法。 (3)在MainActivity的初始化initView中声明并初始化Fragment管理容器HashMap,初始化主页视图HomeFragment并将其加入容器,设置其为默认加载视图。获取FragmentManager用以维护管理Fragment队列,调用beginTransaction方法开启事务。 (4)重写回退按钮响应事件。当页面回到各自模块的初始页面然后按下回退键时,判断当前模块所在的Fragment,由主页模块后退时,执行确认退出系统操作,若从其他模块进行后退,则回到主页模块。通过底部菜单栏setRadioChecked方法设定当前模块的选中标识。 (5)重写模块间切换的方法changeFragmentFromMenu,开启事务,对模块标识ftag进行判断操作,根据用户点击的模块图表将相应的模块视图Fragment通过onResume()进行恢复,同时通过show()将该模块进行展示,从Fragment管理容器中将主页模块以外的Fragment移除。将带有oflag暂停标识的Fragment视图进行暂停处理,通过hide隐藏取消该视图的展示。 (6)在各自的Fragment模块视图类中重写onResume方法,用以在模块恢复时进行用户是否登录判断。对Webview渲染加载的页面进行分析,判断是否包含index初始页面标识。根据flag标识进行是否需要登录操作,flag为1表示从其他Fragment跳转到该模块的Fragment视图并需要用户登录。 以上就是多窗口类浏览器模式的实现主要环节,通过Webview加载渲染服务器资源页面,控制碎片视图Fragment展现各自模块的Webview,在MainActivity对碎片容器以及碎片视图之间的切换进行管理控制,从而完成多窗口类浏览器模式的实现。 2.4 本章小结 本章分析并介绍了安卓中Activity的基本性质,对碎片视图Fragment进行了相关阐述和引出,综合分析了多窗口类浏览器模式的设计需求。随后对多窗口类浏览器模式的框架进行了设计,通过Activity运行管理Fragment的加载和切换,各个模块的Fragment视图独自加载运行相应的Webview,补充和完善不同模块之间切换和回退的业务逻辑。在模块实现部分详细描述了两个关键部分的实现环节,即类浏览器模式和多窗口类浏览器模式,介绍了过程中主要用到的方法以及实现思想。 第三章 跨域交互缓存处理设计 3.1 跨域交互缓存处理需求 3.1.1 缓存技术WebStorage 图3.1 WebStorage示意图 WebStorage 使得网站能够把信息存储到本地的计算机上,并在以后需要的时候进行获取。WebStorage和Cookie类似,区别在于WebStorage是为了更大容量存储而进行设计。Cookie的大小是受限的,并且每次当请求一个新的页面的时候,Cookie都会被发送过去。而WebStorage则存储在计算机上,网站在页面加载完毕后可以通过Javascript来获取这些数据。 WebStorage提供两种类型的API:localStorage和sessionStorage,区别在于localStorage是本地永久性存储的数据,除非显式将其删除或清空,否则将一直保存在本地。sessionStorage存储的数据只在会话期间有效,关闭浏览器则自动删除。两个对象都有共同的操作API。 3.1.2 跨域交互缓存处理需求 WebStorage存储技术针对的是同一个类浏览器Webview,系统在各模块之间由不同的Webview加载渲染,通过不同的Fragment进行管理,因此模块之间无法共享数据。然而通过多窗口浏览器模式构建的系统模块之间经常需要进行数据交互,如用户登录信息以及产品相关信息,Webview由于其特性仅支持自身内部的缓存数据交互。同Webview内不断的覆盖加载新页面以及发生页面回退时可以对缓存数据提供便捷高效的数据保存,使得在页面加载的过程中可以便利的处理需要交互的数据;相对的不同的Webview之间无法共享数据,无论是会话级缓存还是持久化缓存。为此需要重写web端的持久化存储localStorage,将交互的数据保存到移动设备本地数据库。 3.1.3 页面回退管理需求 对于初始页面为A,点击某个链接跳转到B(http://xxx.com.cn/),B页面重定向到C页面(http://xxx.com.cn/website/index.Html),当调用webview.goBack()时,页面回退到B,然后接着会重定向回C页面。这样会导致两个问题:无法回退到Webview的初始页面A以及无法正常退出Activity或者Fragment(只有还未加载完C时进行回退才能退出页面)。为此需要引入历史记录栈,对页面访问历史进行管理,在回退事件中判断该加载页面是否需要重定向并执行相应的操作。 3.2 缓存处理机制 3.2.1 跨域缓存处理 在移动端数据库Sqlite操作类LocalStorage中定义相应的数据库连接属性、创建和更新的操作以及数据库操作单例Instance,在视图访问基类BaseFragment中定义覆盖web端持久化存储localStorage的核心交互类LocalStorageJavascriptInterface。获得数据库操作单例,并覆盖localStorage对缓存的常用处理方法取值getItem(),修改值setItem(),删除值removeItem()以及清空缓存clear()。将页面上获得的数据键值对存入数据库,对其进行更新删除以及返回给页面使用。在Webview初始化时进行页面与后台交互绑定addJavaScriptInterface,并在页面初始化init过程中将页面的默认localStorage操作更换成覆盖重写的方法,即可在页面进行跨域访问时交互相应的数据。 跨域交互的缓存处理机制如图5所示: 图3.2 缓存处理机制原理图 3.2.2页面回退管理 安卓的回退按钮一般用于返回上一级菜单,不过在浏览器页面加载过程中却不能理想地返回上一级页面,默认的回退按钮是针对Activity的回退,对于Webview来说,回退按钮会致使浏览器调用finish()而结束自身的运行,因此需要覆盖Activity的onKeyDown()事件,在方法内部重新对浏览页面进行管理。 在页面的新建关闭以及重定向时,Webview的页面回退goBack()会受到干扰,不能正常回到前一个页面,甚至会发生前后两个页面间来回切换后退的死循环,并影响模块间的后退返回。为此需要对历史访问页面进行管理,采用如下实现方案。 在Fragment视图声明时定义一个用于管理保存历史浏览记录的历史栈ArrayList,将系统初始加载界面加入列表。在此后的页面加载过程中,每次加载页面都将其加入历史栈,在系统回退响应事件中,判断页面是否为重定向页面,如果为重定向页面,则移除历史栈中最后两个链接,加载操作后历史栈的最后一项;否则移除历史栈中最后一项,加载操作后历史栈的最后一项。 页面回退方案的流程图如图3.3所示: 图3.3页面回退管理机制图 3.3 模块实现 3.3.1跨域缓存机制的主要实现 图3.4 重写LocalStorage类示意图 (1)重写LocalStorage类。让LocalStorage继承自SQLiteOpenHelper类,声明LocalStorage对象实例以及其他数据库连接配置信息,如数据表名称、表中存储的数据Id与值Value、数据库名称、创建数据库语句等。通过Singleton单例模式维护LocalStorage实例,重写创建数据库和更新的相关操作。 (2)添加LocalStorage的底层JavaScriptInterface,供服务器资源页面进行访问。通过LocalStorageDBHelper对象获取到单例localStorage,声明上下文对象和SQLiteDatabase对象。重写HTML5存储技术LocalStorage的关键缓存数据操作方法getItem()、setItem()、removeItem()以及clear()。 图3.5 重写WebStorage核心方法示意图 1.重写getItem(),根据传入参数key获取相应的value值 ①判断传入的key是否为空。 ②若key不为空,通过localStorageDBHelper的getReadableDatabase()方法实例化数据库对象database。执行sqlite的数据库查询操作,返回数据库结果操作游标。 ③根据游标的moveToFirst判断查询结果是否为空,返回相应的value结果。关闭数据库连接。 2.重写setItem(),根据传入的参数key和相应值value更新数据库 ①判断传入的key和value是否为空,通过getItem()获取更新前的值。 ②实例化数据库对象database。声明ContentValues对象并将key和value相应赋值。判断更新前和key对应的值是否存在,若存在执行数据库的更新操作;若不存在,执行数据库的插入操作。关闭数据库。 3.重写remove() ①判断传入的key是否为空 ②实例化数据库操作对象,执行相应的数据库删除操作,关闭数据库 4.重写clear() 实例化数据库操作对象,执行数据库删除操作,清空整张数据库表。 在Fragment视图中初始化Webview时,通过addJavaScriptInterface为其绑定重写的底层LocalStorage操作接口,并将操作句柄设置为localStorage。设置webSettings属性,通过setDomStorageEnabled与setDatabaseEnabled启用本地存储功能。 在服务器资源页面JavaScript方法中,尝试用句柄LocalStorage替换window默认的localStorage。若发生异常,说明LocalStorage没有被添加至webview。然后即可像通常HTML5的localStorage对缓存数据进行操作。 3.3.2.页面回退管理的实现 (1)在MainActivity中覆盖模块间的回退响应事件。当模块页面回退至各自的初始页面时,点击回退按钮执行相应的模块切换策略,若该模块为主界面模块,则弹出退出系统确认框供用户选择是否退出;若为其他模块则将菜单栏切换到首页模块。 (2)在各自的Fragment中覆盖模块内部的回退响应事件。在页面初始化时定义并维护一个存放历史访问页面的历史栈loadHistoryUrls (ArrayList),把初始页面url加入到历史栈中,在覆盖加载方法shouldOverrideUrlLoading中将待渲染加载的页面加入到历史栈中。 (3)在Fragment内部的回退事件处理方法中,判断是否可以执行返回操作。然后判断历史栈存存放页面的前一页是否包含初始重定向页面,若包含该页面则移除加载栈中的最后两个链接,否则移除加载栈中的最后一个链接。最后加载重定向之前的页面。 3.4本章小结 本章首先分析了HTML5标准下缓存处理策略WebStorage,其包含本地存储LocalStorage与会话存储SessionStorage,并提供了相应的介绍和说明。然后分析了跨域数据交互问题问题存在的原因以及页面回退管理存在的问题。由于Webview的数据封闭性,不同的模块Webview之间无法共享访问数据,使得不同的模块无法正常交互,为此采用重写LocalStorage的方式,通过本地Sqlite数据库操作模拟HTML5中缓存的操作,重写LocalStorage关键的操作方法setItem()、getItem()、removeItem()以及clear(),并为Webview绑定相应的底层Java方法接口,在服务器页面资源中用重写的LocalStorage替换默认的localStorage,从而完成跨域数据的调用访问操作。由于页面的重定向作用,页面回退时会反复加载到重定向后的页面,导致页面无法正常回退,因此通过维护历史栈的方式,在页面回退时对回退目标页面进行分析判断,并执行相应的回退管理方法,从而使得模块内部的页面以及模块之间可以正常地进行返回操作。 第四章 页面自适应机制设计 针对移动设备分辨率和屏幕大小、设备型号迥异的现状,本章将在分析现有页面跨浏览器兼容方案的基础上,同时结合移动端对不同分辨率设备的支持特性,分析与设计跨机型、跨分辨率、跨浏览器的页面自适应机制。 4.1页面兼容策略 为了使页面能够适应不同版本的浏览器内核,诸如IE、Chorme、Firefox等,CSS3引入了两种常用的设计策略,即优雅降级和渐进增强。 优雅降级指的是在页面设计开始即构建页面的完整功能,然后针对不同的浏览器进行测试和修复。该观点认为应该针对那些最高级、最完善的浏览器来开发网站,同时把那些被认为过时或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段。在这种设计思想下,旧版的浏览器通常被认为仅能提供简单却功能没有大碍的页面浏览体验。虽然可以做一些小的调整来适应某个特定的浏览器,但由于这些调整并非开发过程中关注的焦点,因此浏览器间呈现的差异通常将被直接忽略。 渐进增强指的是在页面设计开始只构建页面的最少特性功能,然后不断针对各高级浏览器追加额外功能。渐进增强思想认为应该先让网站能够正常工作于尽可能旧的浏览器上,然后不断为它在新型浏览器上实现更多的增强和改进。随着时间的推移,当更多的用户逐渐开始升级浏览器,同时浏览器本身的支持度也不断提升时,就会有越来越多的用户体验到这些增强和改进,无需为了一个已经成型的网站在旧式浏览器下正常工作而做逆向开发。渐进增强观点认为网页的开发应关注于内容本身。这使得渐进增强成为目前一种更为合理的设计范例。 图4.1 优雅降级和渐进增强图例 对于优雅降级,功能衰减的设计从复杂的功能现状开始,不断减少用户体验的供给;而渐进增强则的设计是从一个非常基础的,能够发挥作用的版本开始,并不断地进行扩充,以适应未来环境的需要。功能衰减意味着往回看;而渐进增强则意味着朝前看,同时保证其根基安全牢固。 为了能够给用户提供更好的界面交互体验,同时适应不同版本的浏览器内核,系统采用了部分渐进增强的思想,利用媒体查询为不同的浏览器版本和内核提供相应的展现效果,同时保证基本的页面展现功能。 4.2 页面自适应策略 系统采用部分渐进增强的页面适配思想,以及拥抱流式布局策略,通过视口元素的媒体查询来控制不同分辨率阈值下页面的布局规划,调整页面元素的布局为百分比方式,包括组件宽度、字体以及高度、图片的动态大小来控制相同分辨率阈值范围下不同视口中组件的平滑缩放。同时对HTML5页面的移动端适配属性进行设置控制,针对需要达到的效果设置其Viewport的属性,包括宽和高、页面最初大小、初始缩放比例、屏幕像素密度等。使得系统在Web浏览器端以及移动端都有良好的展示效果。 4.2.1设备自适应 Viewport是指用以展现手机页面的区域。尽管Viewport的可见区域和屏幕大小是匹配的,但是它有着自己的尺寸(dimensions),这一尺寸决定了页面上可见的像素点。一个web页面在扩张到整个屏幕之前占用的像素数据是由Viewport的尺寸来定义的,而不是设备屏幕的尺寸。如一个设备的屏幕宽480像素,但是Viewport宽800像素,那么这个web页面需要在800像素宽的屏幕上才能完全展现。 在HTML5中可以使用 <meta> 标签来为页面定义Viewport 的属性。可以在 <meta> 标签的content 属性中,定义多个Viewport属性。例如,Viewport的高和宽,页面的最初大小,以及目标屏幕分辨率。Content 属性中的每个Viewport性质必须以逗号相隔。通过初始缩放initial-scale和用户调整缩放来控制页面的伸张以适当地填充移动端设备的显示区域。通过target density定义屏幕像素密度来控制安卓浏览器和Webview根据不同屏幕的像素密度对页面进行的缩放。 图4.2 视口属性设置示意图 4.2.2.浏览器自适应 通过拥抱流式布局的来使得页面在不同尺寸屏幕上良好的运行。从手机到电脑,设备的屏幕尺寸层出不穷,很难用传统意义上的统一布局来适应这些变动。拥抱流式布局倡导响应式界面设计,通过媒体查询(@media screen and...)来获得设备特性信息,从而灵活的控制不同尺寸屏幕的浏览器动态的调整页面元素的布局,以适应视口特性的变化。 同时根据“目标元素宽度/上下文元素宽度=百分比宽度”的模式将传统的固定像素式布局改为百分比布局,元素的固定像素宽度转换成百分比宽度。假定整个页面布局的宽度是960px,按照1024px屏幕分辨率做参照,百分比应是960/1024 = 93.75%。其他的组件宽度也可以按照960px为参照计算。若除下来的结果是很长的小数,如340/960 = 0.3541666666666667 ,无须对结果进行四舍五入,这样可以保持最高的精确度,这些小数应尽可能完整保留。 根据“目标元素尺寸/上下文元素尺寸=百分比尺寸”将文字的固定像素大小转换为等量的相对尺寸,现代浏览器默认的字体大小是16px,字体的相对大小用em为单位来表示。若某个div的字体大小为48px,则转化后为48/16=3em。结果为小数时的处理方式同上。 给图片设置阈值以使图片随着视口平滑缩放,为不同屏幕尺寸提供不同的图片,然后针对不同视口宽度修正设计,保证在响应式设计中内容始终优先。图片不是布局元素,它里面不包含子元素。另外,图片还有失真的问题,缩放不当都会造成失真。为此,需要给图片添加样式max-width:100% 以实现弹性图片,因为图片所处的容器可以自动缩放,只需让图片限制在父级的宽度之内,就可以随父级一起缩放。弹性图片仅用max-width无法实现,除此之外还需使用百分比宽度。处理方式同计算布局元素的宽度。在此过程中需要注意图片的失真问题,当用户使用的一个超宽屏幕时,图片被放大到原大小的两倍甚至更多,图片的质量会大幅下降。所以还需为图片设置绝对阈值,即宽度上限,因此一个弹性图片的样式组合应该为:width:30%; max-width:400px。 对于一个使用超宽屏幕的用户,按照正常的页面设计比例,这张图片被放大到了500px,但是现在只能显示最大宽度400px,依然是个问题。为此可以采用另一个组合,把max-width加到图片的父级元素上,从源头上就限制放大的最大值,这样图片与它的相邻元素的比例就不会失调了。这样的设计也是个权衡的结果,因为页面结构千变万化,具体的解决办法,还得分析具体页面。 为了防止放大的过宽,可以通过媒体查询来设置不同分辨率下的阈值。在处理各种浏览器兼容问题时,可以借助Modernizr,一个用于检测浏览器功能的开源JavaScript库,通过Modernizr追加的额外类名来辅助修正样式问题,以及通过检测浏览器是否支持媒体查询来按需加载资源,让老版本IE支持HTML5等。 4.3 模块实现 页面自适应主要的实现方式包含: 4.3.1根据适口属性设计响应式布局: ①加入兼容配置代码 <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">,通过chrome插件GCF(谷歌内嵌浏览器框架)控制IE以Webkit引擎及V8引擎进行样式排版,若用户未安装该插件则以IE最高文档模式进行展
概述 网际畅游 (MyIE)是一款精巧的基于IE为内核(需IE5.0或IE5.5的支持),在同一窗口可以打开多个页面,且没有数量限制,对系统资源占有率较少的浏览器。 网际畅游 (MyIE)是一个完全免费的软件,你可以免费使用,并且可以以任何形式传播该软件。 操作系统 支持Win9x/Win NT/Win2000/Win XP。 安装 MyIE属于免费的绿色软件,没有广告条,无需安装,解压到文件夹后可以直接使用。 现有主要功能(MyIE除IE5.0标准功能外,有自己的特色功能) 浏览功能: 多窗口浏览:你可以在MyIE内同时打开多个页面进行浏览,但对系统资源的占用率极少。 标签栏:当你打开多个网页时,却只使用一个窗口,你可以通过单击标签快速方便地切换网页。标签的位置可以在上部,也可在下部。(MyIE选项对话框/标签/标签位置/上部或下部) Tips:使用Ctrl-Tab可快速切换标签。 标签栏有三种形式:单行, 多行, 自适应。自适应标签会根据标签数量自动调整标签的宽度,使他们尽量保持在一行内。 图标化的进度显示: 在浏览时每个标签旁都有一个小图标来显示该页当前的下载进度。 当图标为白色时进度在0%-25%之间,当蓝色区域占四分之一时进度在25%-50%之间,以此类推。当图标消失时说明该页已经下载完毕了。红色图标说明下载完毕但你尚未看过。 关闭广告窗口:在你浏览网站时,你是否会经常遇到一些不请自来的广告窗口?现在你只要点击鼠标右键将不喜欢的窗口列入“加入窗口过滤器”来节省你上网的时间。 你也可以将某个Frame或IFrame的URL加入窗口过滤器,这个Frame或IFrame以后就不会下载了。 使用*过滤窗口:在过滤广告窗口时可以在URL中使用*来过滤一批相似的地址。但你可不要用*把所有的窗口都过滤掉哦! 使用自动窗口过滤:在编辑窗口过滤器中选择使用自动窗口过滤,MyIE会自动禁止那些不必要的广告窗口而不必把URL加入过滤列表中。每个窗口也可分别设置是否使用自动过滤弹出窗口功能而不影响其他窗口。 过滤重复窗口:在编辑窗口过滤器中选择过滤重复窗口,MyIE会自动重用已打开的相同URL的窗口,避免资源浪费。 下载控制:你可以为每个页面设置是否需要在网页中载入图片,声音,Script文件, Java Applet, ActiveX。你可以关闭图片来加快下载的速度。 脱机浏览:使用文件/脱机工作 可以在未联网的情况下浏览以前访问过的历史网页。 保存网页:MyIE可以保存网页中的所有内容, 也可以以原文件名保存网页的HTML代码(Alt-S),给喜欢简洁的网友。 快速保存:快速地保存浏览的网页,包括其中的图片等。 自动保存:类似于保存功能,但页面将自动保存到预先设定好的目录中而不再需要保存对话框。自动保存有4种方式可以选择:WEB页面html, WEB页面为mht, 仅HTML,快速保存。可以在Myie选项的保存页面中选择默认的方式。同时还可以选择以站点分类保存到不同目录。页面将保存在以站点主名命名的子目录中。预先设定的保存目录也可在Myie选项的保存页面中设置。 域名完成:在地址栏输入网址时可以用Ctrl+Enter, Shift+Enter, Ctrl+Shift+Enter来帮你完成这个网址。他会为你加上http://www.及相应的后缀如:.com, .net, .com.cn。你可以在MyIE选项中修改它们。 一次打开窗口的最大值:在 MyIE选项中可设置这个值, 他规定了在批量打开窗口时, 每次的最大值。可根据你的习惯和电脑配置来调整,从而避免因失误而打开过多的窗口。 不弹出脚本错误提示框:在浏览某些网页时会出现脚本错误,要避免这个问题可以在MyIE选项中选中“不弹出脚本错误对话框”. 本地文件浏览:在工具栏上选择文件按钮,会出现一个类似文件管理器的窗口,其中列出了你的目录和文件, 双击文件即可进行浏览了。你可改变下部的文件类型列表以显示不同的文件类型。改变后可按旁边的刷新按钮刷新显示。如需禁止该功能可在myie.ini文件的Settings中加入Secure=1即可。 浏览用户资源:在工具栏上选择用户资源按钮,将出现用户资源窗口, 缺省的包括MyIE最新版本信息,股票查询,网络字典,免费邮件。该窗口的内容存放于resource.htm文件中, 大家可以修改他,放入你需要的网上资源。 自动滚屏:使用自动滚屏可帮助你浏览小说文章等较长的页面,滚屏适用于没有框架的网页。滚屏的速度有高中低三种,如果你觉得太快或太慢可以在ini文件中的[settings]下加入SpeedSeed = nn,nn为一数字,缺省为100。 越小则速度越快。建议不要小于50。 浏览模式:浏览模式为MyIE中的设置的一种组合,大家可在不同的时候使用不同的模式。目前设有自定义,标准,和新闻三种。使用中对设置的修改会自动保存在自定义模式中。 设置页面背景色:可改变页面的背景色方便阅读长文章。 为所有窗口设置背景色:可为所有的窗口设置当前的默认背景色。 自动设背景色:页面下载后自动设置为预设的背景色。 发送:可把页面或链接通过EMAIL发送给你的朋友。 活动标题图标:当MyIE正在下载页面时MyIE的窗口图标会持续转动。 支持下载工具。可以在MyIE选项中选择所使用的下载工具,这样当点击下载文件时可以调用该工具来下载。目前内置了NetAnts和FlashGet。 鼠标控制功能:可通过在页面空白处按住右键并移动鼠标来实现一些功能。目前有: 向下: 打开新窗口 向左: 后退 向右: 前进 先上再下: 刷新 右左右 或 先下再右: 关闭窗口 窗口管理: 激活新窗口:当你选择了激活新窗口, 每当新建一个窗口它就会成为当前的活动窗口。 否则新窗口将不会被激活。 当你在浏览新闻站点时就可以一次点好想要看的所有新闻, 它们将会在后面的窗口中依次打开打开新窗口:可选择在输入新地址,点收藏夹,历史,本地文件,页面内链接时打开新窗口而不影响当前窗口。 多窗口同时浏览:选择窗口/垂直平铺 可使你打开的所有浏览窗口平铺在主窗口内,使你一览无遗。 新建窗口: MyIE有4种新建窗口的方法, 新建空白窗口, 新建主页, 新建当前页, 从剪贴板新建。可在MyIE选项中选择默认的新建方法。 锁定窗口: 在标签上点右键, 选锁定该标签可锁定一个窗口。 当一个窗口被锁定,它就不会在关闭所有窗口时被关闭。且点链接时会在新窗口打开。 关闭所有窗口: 可以关闭除了锁定窗口之外的所有窗口。 全屏浏览:使用全屏浏览(F11)将使MyIE占据整个桌面, 提供最大的浏览空间。 自动重用空窗口:当你在新窗口打开网页的时候MyIE会在自动重用已存在的空窗口, 以节约系统的资源。 在新窗口打开网页:如果你没有使用始终打开新窗口的功能但想在新窗口打开一个网页,可在点收藏夹,链接,和历史中的网址时按住Ctrl键,则该网页将在新窗口打开。 顺序切换窗口:当你打开了一个以上的窗口时,你可以用右上角的两个箭头按钮来顺序的切换当前窗口。 你还可用快捷键Ctrl+ <- 和Ctrl+ -> 或F2, F3来作顺序的切换。 同时Ctrl+Tab 仍可以默认的窗口次序切换当前窗口。快捷键F2 = Ctrl <-, F3 = Ctrl ->, Ctrl-1...Ctrl-9,Ctrl-0 代表窗口1 到 窗口10. 顺序激活窗口:当你关闭一个窗口的时候,下一个被激活的不一定是他旁边的窗口,有时会给浏览带来麻烦。 现在使用 MyIE选项/窗口/激活顺序 就可以解决这个问题。使用 向前 可在关闭当前窗口后激活他前面的一个窗口。使用 向后 可在关闭当前窗口后激活他后面的一个窗口。 为窗口改名:右击窗口标签,选择设置固定标签名。 你可输入一个新名字,他将代替原来的窗口名称。 若要恢复原名,只要删掉固定名字即可。 窗口保护:右击窗口标签,选择保护该窗口。 你可输入保护口令,以后若要访问该窗口必须有口令才行。 隐藏MyIE:用Alt+` 可隐藏或调出MyIE。 拖动链接到地址栏:可将页面上的连接拖动到地址栏上,从而在新窗口打开这个连接。 拖动链接到标签栏:可将页面上的连接拖动到标签栏上的某个标签上, 在这个指定的窗口中打开链接 设置双击和中键击标签的动作:可在Myie选项的标签页面中为双击和中键击标签选择对应的功能。 目前可选的功能有:关闭窗口,保存当前页面,保存HTML,自动保存。 页面自动刷新功能,可定时刷新非活动窗口,如果是当前窗口则不刷新。刷新频率可在工具菜单或标签的右键菜单中设置。 撤消关闭窗口的列表。可撤消最近关闭的多个窗口。 拖动链接在新窗口打开。通过拖动一个链接就可以将这个链接在新窗口打开。 拖动标签:可用鼠标左键拖动标签重新排列标签的位置。 代理服务器: 使用代理服务器:代理服务器可使你突破网络的限制畅游Internet. 如果你已经设置了一个代理服务器, 就可以选“选项/使用代理服务器”来使用或关闭代理服务器。 该设置对所有的网页都有效。 使用Web代理: 网上有不少网站提供基于Web的代理服务, 它速度较快且比较稳定。 你可以为每个网页分别设置不同的Web代理或不使用代理。 可以选“选项/使用Web代理服务”来使用或关闭代理服务。 MyIE已经预先内置了一个代理了。当你为一个窗口选择了使用web代理后,在输入新网址或点了收藏夹中的网址时,就会通过该代理来访问了。 设置代理: 使用“选项/快速代理设置” 可以新增/修改/删除 代理服务器和Web代理服务。代理服务器的格式为:地址: 端口,如202.96.233.13:3128。 大家可以在网上找到不少免费的代理服务器。Web代理中可使用%s和%S来表示插入网址的位置,否则网址将插在代理末尾。MyIE可分类管理不同的代理,你可自行增加或删除代理种类。不过必须保留一个web代理。 使用多个代理服务器:你可以在一个MyIE浏览器中使用一个代理服务器, 然后再开一个MyIE浏览器使用别的代理服务器或不用。 这样你可以一边浏览国内的网站, 一边用代理服务器浏览国外的网站。 设置速度标签: 为了方便代理服务器和web代理的管理,你可以为每个代理设置一个速度标签来加以区分。速度标签有:很快,快速,一般,较慢,很慢,无效共6级。你可以在快速代理设置对话框中用右键菜单来设置。 使用工具条的按钮:工具条上有两个按钮:代理服务器和web代理。使用它们可以方便的选择和使用代理,效果和用菜单一样。 你刚用过的代理将作为缺省的设置,当你直接按按钮时就将使用这个缺省设置的代理了。 编辑Bypass 网址: 使访问那些地址时不通过代理服务器。每个地址以空格分开。 导出/导入代理服务器:使用导入导出功能可以和代理猎手配合使用,方便验证代理服务器。 快捷功能: 设置启动组:在收藏夹栏的收藏夹目录上的右键菜单中选设为启动组菜单,将该目录设为启动组。启动组将以粗体表示,可用于MyIE的第四种启动模式。这样你等于是拥有了一组Homepages了。 Tips: 不妨把目录“链接”设为启动组 打开启动组:打开你的启动组中的所有连接。你可把你的最精华的网址放在里面以方便随时打开它们。 网页缩写:打入长长的URL是不是很麻烦?或许你不想记住那些地址。那么你就需要缩写的功能。你可以为网址定义一个中文或英文的缩写,当你在地址栏中象输入URL一样输入缩写,它将被自动翻译成相应的网址。 一键通:为使你能更快捷的浏览喜欢的网页,你可以使用一键通为F2-F12键定义一个网址。只要你一按F*就可访问对应的网页。但这时F键所对应的其他快捷键将被屏蔽。 3721中文网址:选中 快捷/3721中文网址,就可使用3721中文网址了。不须使用其他客户端软件,只要在地址栏输入“电脑”即可到电脑网站了。 快捷组:应网友的要求加入了和Netcaptor兼容的快捷组。 只需将Netcaptor的*.cgp文件拷贝到MyIE目录下的groups目录中即可。双击组内网址可打开该网页。 将当前所有窗口另存为组:可将当前所打开的窗口网址另存为一个新的组。 自动填表:使用Alt-Q可自动填写当前页面中的表单,在填表前需用Alt-1来收集表单的数据,也可以用Alt-2把表单的数据保存为通用表单。当填表时如果没有相应的表单数据则使用通用表单的数据。注:该功能不适合多人共用的电脑,以免重要数据的泄露。 快捷搜索:只要在地址栏中输入如 yahoo keyword 就可以用yahoo来搜索该keyword。 使用设置快捷搜索可以定制所需要的搜索引擎的快捷名称。 状态栏的快捷按钮。状态栏上设置了四个快捷按钮,依次为脱机浏览,当前窗口使用自动过滤,激活新窗口,简易文本搜集面版。 简易搜集面版。用来暂存文本信息和图片。可拖放文本图片到状态栏按钮或搜集面版 上将文本图片保存起来。图片会保存到预设的图片保存目录中,方便收集图片。 收藏夹和链接: 收藏夹: MyIE具有和IE一致的添加到收藏夹,组织收藏夹,导出/导入收藏夹。 打开本层链接:收藏夹菜单中每级都有一项打开本层链接的菜单。 使用它可以打开这一层收藏夹的所有链接。 打开所有链接:链接栏上的第一个按钮是打开所有链接, 它可以打开链接中的所有网址。 收藏夹栏: 点击工具条上的收藏夹就会出现收藏夹栏。使用收藏夹栏的右键菜单可以删除,复制,在新窗口打开网址。以及打开所有网址。 最爱网页:如果你的收藏夹有许多网址使你无从下手,你可以将其中最喜欢的网址设为最爱网页,他们将会以红色的图标表示出来。它将帮你提高上网的效率。 最爱目录:你可以将你最喜欢的收藏目录设为最爱目录,他们将会以红色的图标表示出来。它将帮你提高上网的效率。双击一个目录可打开所有网址。 打开本层我的最爱:收藏夹菜单中每级都有一项打开本层我的最爱的菜单。 使用它可以打开这一层收藏夹中所有最爱的网页。 使用单列的收藏菜单:如果你有一个很大的收藏夹,如果你使用Win98,建议你使用单列菜单。你可在 MyIE选项中选择。使用后如果菜单超过一屏的长度则会出现滚动按钮,可用来滚动菜单。 收藏条:将收藏夹中的目录以工具条的方式显示,方便你随时取用。如果你的目录很多可使用紧凑模式以去掉小图标。方法是:在ini文件的[settings]下加入CompactFavBar = 1 收藏夹排序:在收藏夹栏中可拖动收藏条目或目录来排序。 加入到当前收藏菜单:在收藏菜单的每个子菜单中增加了一个加入连接到当前目录的菜单项,可将当前页面的网址直接加入到当前的收藏目录中。 增强功能: 内置多种搜索引擎:MyIE内置了近100种中英文分类搜索引擎(查看/浏览栏/搜索),可以轻松查找你需要的资料。你只要输入关键字,然后选择所要用的搜索引擎。搜索结果将在不同的窗口中显示。 而且搜索引擎列表可以很方便的升级。 外部工具管理器:MyIE为用户所想,可以把用户上网经常用到的一些软件放在工具管理器内(如:Net vampire,IP工具包, 甚至拨号网络)方便你使用。使你不用离开MyIE就可以完成大部分上网功能. 而且你可以让工具随MyIE自动启动并自动关闭,可在外部工具管理器中设置。 清除历史记录:可以方便地清除你不需要的一些浏览记录(如Cookies,Cache和历史)。 设为缺省浏览器:选择 选项/设置为缺省浏览器, 回答"是"将MyIE设为缺省浏览器, "否"恢复上一次的设置。 六种启动模式: 打开空白页, 打开主页, 继续最后浏览的页面, 打开收藏夹的启动组(需预先在收藏夹中设定一个启动目录),打开收藏夹的启动组中的最爱网页,打开启动快捷组(需要预先设定). 让你一打开MyIE就看到你最喜欢的网站. 显示上网的IP地址: 选择工具/显示本机IP地址, 在状态栏上显示当前的IP地址。 设置皮肤:MyIE支持与IE兼容的皮肤。 将BMP图形文件复制到MyIE所在目录的myieskin子目录中,然后在工具/设置MyIE皮肤中选择相应的皮肤即可。 自定义工具条:应网友的要求加入了可自定义工具条按钮的功能。 MyIE选项:可让你修改一些MyIE的属性,使你更好的控制和使用MyIE. 系统资源:在Win98系统上,状态栏上会显示当前系统的资源数量。 空闲内存:在WinNT和Win2000下显示空闲的内存数。 Modem下载速度:在Win98系统上,状态栏上会显示当前modem的下载速度。 最小化到系统托盘:在MyIE选项中选择最小化到系统托盘即可使MyIE最小化到系统托盘中。 禁止状态栏上的滚动字符:选中 选项/禁止状态栏滚动字符 可以去掉那些干扰视线的滚动字符。 链接列表。使用查看中的页面链接可以列出当前页面内的所有链接,并可用过滤功能列出相应的链接。 锁定主页:可防止有的网页随便的修改你的主页,只有通过MyIE中的Internet选项才可以修改主页。
Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在普遍使用的Windows XP Home版本上并没有IIS。 添加和运行准备   一、IIS的添加 请进入“控制面板”,依次选“添加/删除程序→添加/删除Windows组件”,将“Internet信息服务(IIS)”前的小钩去掉(如有),重新勾选中后按提示操作即可完成IIS组件的添加。用这种方法添加的IIS组件中将包括Web、FTP、NNTP和SMTP等全部四项服务。   二、IIS的运行 当IIS添加成功之后,再进入“开始→设置→控制面板→管理工具→Internet服务管理器(Internet信息服务)”以打开IIS管理器,对于有“已停止”字样的服务,均在其上单击右键,选“启动”来开启。   三、在Windows XP Home版本中添加IIS的方法一般情况下按照“一”的方法只适用于Windows XP的专业版本,而对于家庭版,如今已有了破解方法:步骤1 首先我们需要准备一张Windows 2000的安装光盘,假设你的Windows XP家庭版安装在“C:\Windows”,启动记事本程序,在打开对话框中选择打开“C:\Windows\inf\sysoc.inf”,找到“[Components]”小节,并继续找到类似“iis= iis.dll,OcEntry,iis. inf,hide,7”的行,把这一行替换为“iis=iis2.dll,OcEntry, iis2.inf,,7”,之后保存文件。   步骤2 把Windows 2000专业版的光盘插入光驱,用Winrar打开光盘i386目录下的iis.dl_和iis. in_这两个CAB格式的文件,将解压缩得到的“iis.dll”改名为“iis2.dll”,复制到“C:\Windows\system32\setup\”目录下;将 “iis. inf”改名为“iis2.inf”,复制到“C:\Windows\inf\”目录下。   步骤3 打开控制面板,单击“添加删除程序”图标,然后在窗口左侧导航栏上单击“添加/删除Windows组件”按钮,在打开的“Windows组件向导” 中,选中“Internet信息服务(IIS)”前的复选框。单击右下角的“详细信息”按钮可以打开对话框,在该对话框中我们可以选择需要安装的IIS组件内容。选择完毕后单击“确定”按钮,退回到界面中再单击“下一步”,系统就会开始复制文件。 提示:如果在安装过程中系统需要插入Windows XP CD,或者需要你提供“exch_adsiisex.dll”文件,那是因为你按照默认的选项安装了IIS。要解决这个问题,只要清空“SMTP Service”选项前的复选框即可。如果进入窗口中,“Internet信息服务(IIS)” 选项无法选择,那么很可能因为你使用的“iis.dl_”和“iis. in_”是从Windows XP专业版中提取的,只要换成 Windows 2000专业版中的这两个文件即可。 步骤4 安装结束后,你可以打开“控制面板→性能和选项→管理工具”查看“Internet信息服务管理”。再打开IE,在地址栏中输入“localhost”后回车,验证一下IIS是否正常运行。 经过验证,WWW、FTP等几个服务经过这样的修改都可以在Windows XP家庭版上正常运行。不过经过这样处理安装的IIS在运行上可能存在某种未知的缺陷。   四、在Vista系统中安装IIS7.0相对于早先的版本,IIS 7.0 带来了许多引人注目的新特色新功能,比如基于 Microsoft .NET Framework 的全局配置文件,可简单地通过文本编辑器或 Microsoft Visual Studio 编辑;全新的 IIS 管理器,可同时管理 IIS 和 ASP. NET,操作更加方便;以及引入了命令行工具 Appcmd.exe ,给 Web 服务器的日常管理、监视和配置提供了除图形接口外的另一种方式,更为简单、高效。 同Windows XP一样,在Windows Vista的默认设置下,IIS (Internet 信息服务) 7.0未予安装,要想使用它,必须首先安装IIS。下面简单介绍IIS的安装过程: 依次点击“开始” => “控制面板” => “程序”,选择“打开或关闭Windows功能”。 这是一个触发UAC的操作,如果Windows Vista没有关闭UAC,则会弹出提示信息,确认并继续; 如果仅需要IIS 7.0支持静态内容,可直接选中“Internet信息服务”,如果希望 Web 服务器支持动态内容,则需展开“万维网服务”分支,将所需的选项全部选中; 点击“确定”,Windows Vista即启动IIS的安装过程; 安装完成后,打开浏览器输入 “http://localhost/”,检查IIS是否正常。 [编辑本段]IIS之Web服务器安装步骤   1、插入windows xp安装光盘,打开控制面板,然后打开其中的“添加/删除程序”   2、在添加或删除程序窗口左边点击“添加/删除Windows组建”[1]   3、捎带片刻系统会启动Windows组建向导,在Internet信息服务(IIS)前面选勾,点击下一步:   4、系统安装成功,系统会自动在系统盘新建网站目录,默认目录为:C:\Inetpub\wwwroot   5、打开控制面板-性能和维护-管理工具-Internet 信息服务:   6、在默认网站上点击右键-选择属性:   7、点击主目录:在本地路输入框后点击浏览可以更改网站所在文件位置,默认目录为:C:\Inetpub\wwwroot   在执行权限后面点击配置-调试-教本错误信息,选中:向客户端发送文本错误信息:处理 URL 时服务器出错。请与系统管理员联系。   点击文档:可以设置网站默认首页,推荐删除iisstart.asp,添加index.asp和index.htm   点击目录安全性:点击编辑可以对服务器访问权限进行设置   8、把凡人网络购物系统V7.0文件复制到你选择的网站目录下,假设你选择的目录为为默认目录:C:\Inetpub\wwwroot   9、把frshop.rar解压之后的文件复制到C:\Inetpub\wwwroot\shop下即可   10、您可以通过以下方式访问商城:   http://localhost/shop/ 或 http://127.0.0.1/shop/ 或 http://计算机名/shop/ 或 http://本机IP地址/shop/ 访问   其它人可以通过http://计算机名/shop/ 或 http://本机IP地址/shop/ 访问   11、如果您有域名,把域名解析到本地IP地址,即可通过http://域名/shop/ [编辑本段]IIS之Web服务器建立   第一篇 IIS之Web服务器   一、建立第一个Web站点   比如本机的IP地址为192.168.0.1,自己的网页放在D:\Wy目录下,网页的首页文件名为Index.htm,现在想根据这些建立好自己的Web服务器。   对于此Web站点,我们可以用现有的“默认Web站点”来做相应的修改后,就可以轻松实现。请先在“默认Web站点”上单击右键,选“属性”,以进入名为“默认Web站点属性”设置界面。   1.修改绑定的IP地址:转到“Web站点”窗口,再在“IP地址”后的下拉菜单中选择所需用到的本机IP地址“192.168.0.1”。   2.修改主目录:转到“主目录”窗口,再在“本地路径”输入(或用“浏览”按钮选择)好自己网页所在的“D:\Wy”目录。   3.添加首页文件名:转到“文档”窗口,再按“添加”按钮,根据提示在“默认文档名”后输入自己网页的首页文件名“Index.htm”。   4.添加虚拟目录:比如你的主目录在“D:\Wy”下,而你想输入“192.168.0.1/test”的格式就可调出“E:\All”中的网页文件,这里面的“test”就是虚拟目录。请在“默认Web站点”上单击右键,选“新建→虚拟目录”,依次在“别名”处输入“test”,在“目录”处输入“E:\All”后再按提示操作即可添加成功。   5.效果的测试:打开IE浏览器,在地址栏输入“192.168.0.1”之后再按回车键,此时就能够调出你自己网页的首页,则说明设置成功!   注:具体不同的电脑会有不同的选项名称,但大体上还是可以找到了(多试一下)。   二、添加更多的Web站点   1.多个IP对应多个Web站点   如果本机已绑定了多个IP地址,想利用不同的IP地址得出不同的Web页面,则只需在“默认Web站点”处单击右键,选“新建→站点”,然后根据提示在“说明”处输入任意用于说明它的内容(比如为“我的第二个Web站点”)、在“输入Web站点使用的IP地址”的下拉菜单处选中需给它绑定的IP地址即可;当建立好此Web站点之后,再按上步的方法进行相应设置。   2.一个IP地址对应多个Web站点   当按上步的方法建立好所有的Web站点后,对于做虚拟主机,可以通过给各Web站点设不同的端口号来实现,比如给一个Web站点设为80,一个设为81,一个设为82……,则对于端口号是80的Web站点,访问格式仍然直接是IP地址就可以了,而对于绑定其他端口号的Web站点,访问时必须在IP地址后面加上相应的端口号,也即使用如 “http://192.168.0.1:81” 的格式。   很显然,改了端口号之后使用起来就麻烦些。如果你已在DNS服务器中将所有你需要的域名都已经映射到了此惟一的IP地址,则用设不同“主机头名”的方法,可以让你直接用域名来完成对不同Web站点的访问。   比如你本机只有一个IP地址为192.168.0.1,你已经建立(或设置)好了两个Web站点,一个是“默认Web站点”,一个是“我的第二个Web站点”,现在你想输入“www.enanshan. com”可直接访问前者,输入“www.popunet. com”可直接访问后者。其操作步骤如下:   (1)请确保已先在DNS服务器中将你这两个域名都已映射到了那个IP地址上;并确保所有的Web站点的端口号均保持为80这个默认值。   (2)再依次选“默认Web站点→右键→属性→Web站点”,单击“IP地址”右侧的“高级”按钮,在“此站点有多个标识下”双击已有的那个IP地址(或单击选中它后再按“编辑”按钮),然后在“主机头名”下输入“www.enanshan. com”再按“确定” 按钮保存退出。   (3)接着按上步同样的方法为“我的第二个Web站点”设好新的主机头名为“www.popunet.c o m”即可。   (4)最后,打开你的IE浏览器,在地址栏输入不同的网址,就可以调出不同Web站点的内容了。   3.多个域名对应同个Web站点   你只需先将某个IP地址绑定到Web站点上,再在DNS服务器中,将所需域名全部映射向你的这个IP地址上,则你在浏览器中输入任何一个域名,都会直接得到所设置好的那个网站的内容。   搭建IIS服务器应该注意的安全问题   1.iis安全设置之安装系统补丁。对于服务器来说就特别重要,因为安全补丁关乎到系统安全,而微软网站经常发布最新的系统安全补丁,可以用系统自带的windows update程序随时更新。   2.iis安全设置之FTP目录的设定。FTP目录没有设置也容易被别人攻击,一般的就是将主目录指定到逻辑盘。为了安全,要对对每个目录按不同的用户设置不同的访问权限,然后关闭一些不需要的服务,这样可以对不良人士利用IIS溢出漏洞访问到系统盘作个第一级防护。   3.iis安全设置之端口设置。IIS有默认的端口设置,只要稍有计算机知识的人都会记得这些端口的,要破解的话就十分的方便,所以尽量不要使用21这个默认端口号,并启用日志,以便FTP服务出现异常时检查。 [编辑本段]对IIS服务的远程管理   三、对IIS服务的远程管理   1.在“管理Web站点”上单击右键,选“属性”,再进入“Web站点”窗口,选择好“IP地址”。   2.转到“目录安全性”窗口,单击“IP地址及域名限制”下的“编辑”按钮,点选中“授权访问”以能接受客户端从本机之外的地方对IIS进行管理;最后单击“确定”按钮。   3.则在任意计算机的浏览器中输入如“http://192.168.0.1:3598”(3598为其端口号)的格式后,将会出现一个密码询问窗口,输入管理员帐号名(Administrator)和相应密码之后就可登录成功,现在就可以在浏览器中对IIS进行远程管理了!在这里可以管理的范围主要包括对Web站点和FTP站点进行的新建、修改、启动、停止和删除等操作。 [编辑本段]有关IIS的常见问题解答   四、本部分常见问题解答   Q:在上文中所涉及到的网址中,有的加了“http://”,有的没加,这意味着什么呢?   A:没有加“http://”部分的网址,说明其可加可不加;而加了“http://”部分的,则说明它必不可少!对于带端口号的网址则必须加;否则可省略。   Q:对于上文中涉及到IP地址的网址,可否用比较“友好”的名称来代替呢?   A:可以!它除了能够用IIS服务器所在的计算机名来代替之外,还可在DNS服务器中新建域名和相应IP地址的映射表,就也可以用域名来进行访问了!   Q:我设置好了一个Web服务器,但是当我访问网页时,却出现密码提示窗口。这是为什么?   A:访问Web站点时,出现密码提示窗口,一般来说有以下原因,请逐个去进行检查:   1.所访问的网页文件本身加了密。比如“默认Web站点”原主目录“E:\Inetpub\wwwroot”下的首页文件“iisstart.asp”访问时就需要密码。   2.没有设置允许匿名访问或作了不应该的改动.首先应确保已勾选中了“匿名访问”这一项;并且其下“编辑”中“匿名用户帐号”中“用户名”一项应为“IUSR_NODISK”(其中“NODISK”为计算机名)的格式;另外,还需要已勾选中“允许IIS控制密码”一项。   3.你的目标目录被限制了访问权限。此项仅当该目录位于NTFS格式分区中时才可能出现。请在其上单击右键,选“属性”,再进入“安全”窗口,看列表中是不是默认的允许“Everyone”组完全控制的状态,如不是,请改回 。 [编辑本段]IIS之FTP服务器   第二篇 IIS之FTP服务器   一、建立你的FTP站点   第一个FTP站点(即“默认FTP站点”)的设置方法和更多FTP站点的建立方法请参照前文Web服务器中相关操作执行。需要注意的是,如果你要用一个IP地址对应多个不同的FTP服务器,则只能用使用不同的端口号的方法来实现,而不支持“主机头名”的做法。   对于已建立好的FTP服务器,在浏览器中访问将使用如“ftp://192.168.0.1”或是“ftp://192.168.0.1:22的格式”;除了匿名访问用户(Anonymous)外,IIS中的FTP将使用Windows 2000自带的用户库(可在“开始→程序→管理工具→计算机管理”中找到“用户”一项来进行用户库的管理)。 最后,关键一步还有就是将你的电脑变为网络中的一台服务器,所以你要在你的电脑中装上一个合适的代理服务器软件并运行。   二、本部分常见问题解答   Q:如何修改FTP服务器登录成功或退出时的系统提示信息?   A:在相应的FTP站点上单击右键,选“属性”,再转到“消息”窗口,在“欢迎”处输入登录成功之后的欢迎信息,在“退出”处输入用户退出时的欢送信息即可。   Q:为什么我的FTP服务器建立成功之后,除了管理员(Administrator)和匿名用户(Anonymous)之外,普通用户都不能在本机上登录;可在其他计算机上却能够正常使用。这是为什么?   A:因为默认的,普通用户不具有在本机登录的权限。如果要修改,请进入“开始→程序→管理工具→本地安全策略”中选择“左边框架→本地策略→用户权利指派”,再在右边框架中双击“在本地登录”项,然后将所需的普通用户添加到它的列表中去就行了。 [编辑本段]IIS之SMTP服务器   第三篇 IIS之SMTP服务器   如果你嫌互联网上的那些免费邮件发送邮件的速度过慢的话,你或许可以考虑用IIS来建立一个本地的SMTP服务器。不管你是直接连入互联网还是通过局域网接入,不管你是有静态的IP地址还是用动态的IP地址,都可以很轻松地建立成功!   建立IIS下的SMTP服务器的方法非常简单,只需在IIS管理器中让“默认SMTP虚拟服务器”处于已启动状态就行了;此外一般不用再做其他任何设置。   如果你想要用自己的SMTP服务器发信,只需将你E-mail客户端软件设置中“发送邮件服务器(SMTP)”项中填入“localhost”,则不管你的IP地址如何变化,它都能正常工作, 。   当你使用自己的这个SMTP服务器发送E-mail时,不仅有不受制于人的自由感,更有闪电般的发信速度,是个人SMTP服务器的最佳选择!   IIS版本对应的windows版本信息   2000 iis版本是5.0   xp 版本是5.1   2003版本是6.0   2008版本是7.0 [编辑本段]IIS 状态解释 概要   当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。该状态代码记录在 IIS 日志中,同时也可能在 Web 浏览器或 FTP 客户端显示。状态代码可以指明具体请求是否已成功,还可以揭示请求失败的确切原因。 更多信息   日志文件的位置   在默认状态下,IIS 把它的日志文件放在 %WINDIR\System32\Logfiles 文件夹中。每个万维网 (WWW) 站点和 FTP 站点在该目录下都有一个单独的目录。在默认状态下,每天都会在这些目录下创建日志文件,并用日期给日志文件命名(例如,exYYMMDD.log)。   HTTP   1xx - 信息提示   这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。 • 100 - 继续。   • 101 - 切换协议。   2xx - 成功   这类状态代码表明服务器成功地接受了客户端请求。 • 200 - 确定。客户端请求已成功。   • 201 - 已创建。   • 202 - 已接受。   • 203 - 非权威性信息。   • 204 - 无内容。   • 205 - 重置内容。   • 206 - 部分内容。   3xx - 重定向   客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。 • 302 - 对象已移动。   • 304 - 未修改。   • 307 - 临时重定向。   4xx - 客户端错误   发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。 • 400 - 错误的请求。   • 401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示: • 401.1 - 登录失败。   • 401.2 - 服务器配置导致登录失败。   • 401.3 - 由于 ACL 对资源的限制而未获得授权。   • 401.4 - 筛选器授权失败。   • 401.5 - ISAPI/CGI 应用程序授权失败。   • 401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。   • 403 - 禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: • 403.1 - 执行访问被禁止。   • 403.2 - 读访问被禁止。   • 403.3 - 写访问被禁止。   • 403.4 - 要求 SSL。   • 403.5 - 要求 SSL 128。   • 403.6 - IP 地址被拒绝。   • 403.7 - 要求客户端证书。   • 403.8 - 站点访问被拒绝。   • 403.9 - 用户数过多。   • 403.10 - 配置无效。   • 403.11 - 密码更改。   • 403.12 - 拒绝访问映射表。   • 403.13 - 客户端证书被吊销。   • 403.14 - 拒绝目录列表。   • 403.15 - 超出客户端访问许可。   • 403.16 - 客户端证书不受信任或无效。   • 403.17 - 客户端证书已过期或尚未生效。   • 403.18 - 在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。   • 403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。   • 403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。   • 404 - 未找到。 • 404.0 -(无) – 没有找到文件或目录。   • 404.1 - 无法在所请求的端口上访问 Web 站点。   • 404.2 - Web 服务扩展锁定策略阻止本请求。   • 404.3 - MIME 映射策略阻止本请求。   • 405 - 用来访问页面的 HTTP 谓词不被允许(方法不被允许)   • 406 - 客户端浏览器不接受所请求页面的 MIME 类型。   • 407 - 要求进行代理身份验证。   • 412 - 前提条件失败。   • 413 – 请求实体太大。   • 414 - 请求 URI 太长。   • 415 – 不支持的媒体类型。   • 416 – 所请求的范围无法满足。   • 417 – 执行失败。   • 423 – 锁定的错误。   5xx - 服务器错误   服务器由于遇到错误而不能完成该请求。 • 500 - 内部服务器错误。 • 500.12 - 应用程序正忙于在 Web 服务器上重新启动。   • 500.13 - Web 服务器太忙。   • 500.15 - 不允许直接请求 Global.asa。   • 500.16 – UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专用。   • 500.18 – URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。   • 500.100 - 内部 ASP 错误。   • 501 - 页眉值指定了未实现的配置。   • 502 - Web 服务器用作网关或代理服务器时收到了无效响应。 • 502.1 - CGI 应用程序超时。   • 502.2 - CGI 应用程序出错。application.   • 503 - 服务不可用。这个错误代码为 IIS 6.0 所专用。   • 504 - 网关超时。   • 505 - HTTP 版本不受支持。   常见的 HTTP 状态代码及其原因   • 200 - 成功。 此状态代码表示 IIS 已成功处理请求。   • 304 - 未修改。 客户端请求的文档已在其缓存中,文档自缓存以来尚未被修改过。客户端使用文档的缓存副本,而不从服务器下载文档。   • 401.1 - 登录失败。 登录尝试不成功,可能因为用户名或密码无效。   • 401.3 - 由于 ACL 对资源的限制而未获得授权。 这表示存在 NTFS 权限问题。即使您对试图访问的文件具备相应的权限,也可能发生此错误。例如,如果 IUSR 帐户无权访问 C:\Winnt\System32\Inetsrv 目录,您会看到这个错误。   • 403.1 - 执行访问被禁止。 下面是导致此错误信息的两个常见原因: • 您没有足够的执行许可。例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。若要修改执行权限,请在 Microsoft 管理控制台 (MMC) 中右击目录,然后依次单击属性和目录选项卡,确保为试图访问的内容设置适当的执行权限。   • 您没有将试图执行的文件类型的脚本映射设置为识别所使用的谓词(例如,GET 或 POST)。若要验证这一点,请在 MMC 中右击目录,依次单击属性、目录选项卡和配置,然后验证相应文件类型的脚本映射是否设置为允许所使用的谓词。   • 403.2 - 读访问被禁止。验证是否已将 IIS 设置为允许对目录进行读访问。另外,如果您正在使用默认文件,请验证该文件是否存在。   • 403.3 - 写访问被禁止。 验证 IIS 权限和 NTFS 权限是否已设置以便向该目录授予写访问权。   • 403.4 - 要求 SSL。禁用要求安全通道选项,或使用 HTTPS 代替 HTTP 来访问页面。   • 403.5 - 要求 SSL 128。禁用要求 128 位加密选项,或使用支持 128 位加密的浏览器以查看该页面。   • 403.6 - IP 地址被拒绝。您已把您的服务器配置为拒绝访问您目前的 IP 地址。   • 403.7 - 要求客户端证书。您已把您的服务器配置为要求客户端身份验证证书,但您未安装有效的客户端证书。   • 403.8 - 站点访问被拒绝。您已为您用来访问服务器的域设置了域名限制。   • 403.9 - 用户数过多。与该服务器连接的用户数量超过了您设置的连接限制。   注意:Microsoft Windows 2000 PRofessional 和 Microsoft Windows XP PRofessional 自动设置了在 IIS 上最多 10 个连接的限制。您无法更改此限制。   • 403.12 - 拒绝访问映射表。 您要访问页面要求提供客户端证书,但映射到您的客户端证书的用户 ID 已被拒绝访问该文件。   • 404 - 未找到。 发生此错误的原因是您试图访问的文件已被移走或删除。如果在安装 URLScan 工具之后,试图访问带有有限扩展名的文件,也会发生此错误。这种情况下,该请求的日志文件项中将出现“Rejected by URLScan”的字样。   • 500 - 内部服务器错误。 很多服务器端的错误都可能导致该错误信息。事件查看器日志包含更详细的错误原因。此外,您可以禁用友好 HTTP 错误信息以便收到详细的错误说明。   • 500.12 - 应用程序正在重新启动。 这表示您在 IIS 重新启动应用程序的过程中试图加载 ASP 页。刷新页面后,此信息即会消失。如果刷新页面后,此信息再次出现,可能是防病毒软件正在扫描 Global.asa 文件。   • 500-100.ASP - ASP 错误。 如果试图加载的 ASP 页中含有错误代码,将出现此错误信息。若要获得更确切的错误信息,请禁用友好 HTTP 错误信息。默认情况下,只会在默认 Web 站点上启用此错误信息。   • 502 - 网关错误。 如果试图运行的 CGI 脚本不返回有效的 HTTP 标头集,将出现此错误信息。 [编辑本段]IIS相关总结   IIS是Internet Information Server的缩写,它是微软公司主推的服务器,最新的版本是Windows7里面包含的IIS 7.0,IIS与WindowNT Server完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。   IIS支持HTTP(Hypertext Transfer Protocol,超文本传输协议),FTP(File Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展。   IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBScript,JScript开发软件以及Java,它也支持CGI和WinCGI,以及ISAPI扩展和过滤器。   IIS支持服务器应用的Microsoft BackOffice系列,Microsoft BackOffice系列包括以下内容:   1,Microsoft Exchange Server 客户/服务器通讯和群组软件;   2,Mirrosoft Proxy Server 代理服务器;   3,用于连接IBM企业网络的Microsoft SNA Server;   4,用于集中管理分布式系统的Microsoft Systems Management Server;   5,Microsoft Commercial Internet System(MCIS)。   IIS的设计目的是建立一套集成的服务器服务,用以支持HTTP,FTP和SMTP,它能够提供快速且集成了现有产品,同时可扩展的Internet服务器。   IIS相应性极高,同时系统资源的消耗也是最少,IIS的安装,管理和配置都相当简单,这是因为IIS与Windows NT Server网络操作系统紧密的集成在一起,另外,IIS还使用与Windows NT Server相同的SAM(Security Accounts Manager,安全性账号管理器),对于管理员来说,IIS使用诸如Performance Monitor和SNMP(Simple Nerwork Management Protocol,简单网络管理协议)之类的NT已有管理工具。   IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过滤器可以预先处理和事后处理储存在IIS上的数据。用于32位Windows应用程序的Internet扩展可以把FTP,SMTP和HTTP协议置于容易使用且任务集中的界面中,这些界面将Internet应用程序的使用大大简化,IIS也支持MIME(Multipurpose Internet Mail Extensions,多用于Internet邮件扩展),它可以为Internet应用程序的访问提供一个简单的注册项。   IIS的一个重要特性是支持ASP。IIS 3.0版本以后引入了ASP,可以很容易的张贴动态内容和开发基于Web的应用程序。对于诸如VBScript,JScript开发软件,或者由Visual Basic,Java,Visual C++开发系统,以及现有的CGI和WinCGI脚本开发的应用程序,IIS都提供强大的本地支持。   GHOST系统不能安装IIS处理方法:   1、在控制面板→添加/删除程序→添加/删除Windows组件中应该没IIS给你选的。   3、下载软件XP-IISpatch,运行修复后在添加/删除Windows组件中就会出现IIS。接着就和一般情况下安装IIS一样了,不过途中需要多次重新指定你所下载的IIS安装包。但如果你不幸安装途中出现无法复制文件之类的错误无法安装,就要在DOS命令提示符下运行“esentutl /p %windir%\security\database\secedit.sdb”修复secedit.sdb文件,点YES就可以了,但保险起见最好在运行XP-IISpatch修复后就输入命令修复secedit.sdb文件,等出错后再修复secedit.sdb文件有可能导致无法继续安装。   4、由于是安装包装的,因此还有后续工作要做,不然有可能会出错。   5、开始→运行,输入msdtc -resetlog,解决无法进入“控制台根目录”->"组件服务"->"计算机"->"我的电脑"->"COM+应用程序"和 进入“控制台根目录”->"组件服务"->"计算机"->"我的电脑"->"COM+应用程序", 出错,错误代码8004E00F-COM+无法与Microsoft分布式事务协调程序 。 [编辑本段]IIS 5.1和IIS 6.0一些显著的重要区别 核心功能和服务   已对 IIS 6.0 进行了重新设计以便利用基本 Windows 内核 HTTP.sys。这使其具有内置的响应和请求缓存和队列功能,并能够将应用程序进程请求直接路由到工作进程,从而改善可靠性和性能。 IIS 6.0 引入了两种用于配置应用程序环境的操作模式:工作进程隔离模式和 IIS 5.0 隔离模式。在安装 IIS 6.0 时默认的隔离模式取决于您执行的是全新安装还是升级。 在全新安装 IIS 6.0 之后,IIS 以工作进程隔离模式运行。   在从较低版本的 IIS 6.0 升级之后,隔离模式与以前安装的 IIS 6.0 版本所配置的相同。   在从 IIS 5.0 或 IIS 4.0 升级之后,在默认情况下,IIS 6.0 以 IIS 5.0 隔离模式运行,这样可保持与现有应用程序的兼容性。   有关从一种隔离模式切换到另一种隔离模式的信息,请参阅配置隔离模式。    IIS 5.0 IIS 5.1 IIS 6.0 平台 Windows 2000 Windows XP Professional Windows Server 2003 家族 体系结构 32 位 32 位和 64 位 32 位和 64 位 应用程序进程模型 TCP/IP 内核   DLLhost.exe(处于中等或高应用程序隔离模式下的多个 DLL 主机) TCP/IP 内核   DLLhost.exe(处于中等或高应用程序隔离模式下的多个 DLL 主机) HTTP.sys 内核   当 IIS 以 IIS 5.0 隔离模式运行时:Inetinfo.exe(对于进程内应用程序)或 DLLhost.exe(对于进程外应用程序) 当 IIS 以工作进程隔离模式运行时:W3wp.exe(多工作进程) 配置数据库配置 二进制 二进制 XML 安全性 Windows 身份验证   SSL Kerberos Windows 身份验证   SSL Kerberos 安全向导 Windows 身份验证   SSL Kerberos 安全向导 Passport 支持 远程管理 HTMLA 无 HTMLA   终端服务 远程管理工具 (HTML)   终端服务 群集支持 IIS 群集 Windows 支持 Windows 支持 WWW 服务 Windows 9x 上的个人 Web 管理器   Windows 2000 上的 IIS (可选)Windows XP Professional 上的 IIS Windows IIS 5.0 隔离模式   IIS 5.0 隔离模式按照与 IIS 5.0 中的进程管理相似的方式管理应用程序进程:所有的进程内应用程序都在 Inetinfo.exe 内运行,进程外应用程序在单独的 DLL 宿主中运行。一些现有应用程序可能无法并发运行或将会话状态与应用程序分开存储。因此,在 IIS 5.0 隔离模式中运行进程可以确保与大多数现有应用程序的兼容性。下图显示如何在 IIS 5.0 隔离模式中处理应用程序进程。 配置数据库配置   IIS 6.0 的配置数据库以 XML 文件形式存储,而不是以早期版本中的二进制格式存储。位置仍在原处,但是操作方式(更新、回滚、还原和扩展)已发生了变化。有两个重要文件,并非一个:MetaBase.xml 和 MBSchema.xml。 有关 IIS 配置数据库的详细信息,请参阅关于配置数据库。 管理   在 IIS 4.0 中,应用程序既可以在与 Internet 服务相同的进程中运行,也可以在单独的进程中运行。在 IIS 5.0 和 5.1 中,应用程序现在可以分为若干汇集的进程以增强性能并提高可伸缩性。 详细信息,请参阅关于应用程序。在 IIS 6.0 工作进程隔离模式中,可将应用程序组合到任意数量的应用程序池中。   “应用程序映射”属性页包含一个超文本传输协议 (HTTP) 动作列表,它们可由映射到特定文件类型的应用程序进行处理。该动作列表与 IIS 4.0 有一处不同。在 IIS 4.0 中,列表中包含“已排除”或未被处理的动作。这个改变是为了适应新的 HTTP 动作,以便将其添加到协议中。 有关应用程序映射的详细信息,请参阅设置应用程序映射。   群集不是 IIS 6.0 的功能(不支持 IISsynche.exe)。群集是 Windows Server 2003 家族的功能。有关 Windows 群集 (MSCS) 的信息,请参阅 Windows Server 2003 家族的帮助。   与 IIS 4.0 相比,IIS 5.0 中自定义错误文件的位置已经改变。 详细信息,请参阅启用详细的自定义错误消息。   已经添加了新的自定义错误文件,以便告更详细的错误信息以及与新功能有关的错误。 有关可用的自定义错误消息的完整列表,请参阅关于自定义错误消息。   基于 Web 的 Internet 服务管理器 (HTML) 已经由 Web 工具应用。要使用 Internet 服务管理器 (HTML) 远程管理 IIS, 请参阅如何远程管理服务器。 以编程方式管理   在早期版本的 IIS 中,可以从编译的 C++ 应用程序使用管理基本对象 (ABO) 或者从 C++ 或脚本文件使用 Active Directory 服务界面 (ADSI) 以编程方式管理 IIS。IIS 6.0 包括了 Windows 管理规范 (WMI) 提供程序,WMI 这一技术允许管理员以编程方式控制所有服务和应用程序。详细信息,请参阅使用 IIS WMI 提供程序。有关新的 ADSI 方法的信息,请参阅 IIS 6.0 中的配置数据库更改。 Active Server Pages   从 IIS 6.0 开始,Microsoft Active Server Pages (ASP) 可以与 Microsoft ASP.N E T 一起使用。有关配置 IIS 以运行 ASP.N E T 应用程序的信息,请参阅 ASP.N E T。有关 IIS 6.0 中 ASP 功能更改的信息,请参阅 ASP 中的重要更改。 ASP 挂起检测   当 IIS 网站繁忙时,可能会出现这种情况:已经产生了最大数量的 ASP 线程,而一些 ASP 线程却挂起,这会导致性能降低。IIS 6.0 能够通过回收作为 ASP ISAPI 扩展 (ASP.dll) 的特定实例宿主的工作进程来解决线程挂起问题。当 ASP 线程在 IIS 6.0 中挂起时,ASP.dll 调用 ISAPI 服务器支持函数 HSE_REQ_REPORT_UNHEALTHY,WWW 服务回收作为 ASP.dll 宿主的工作进程,并在事件日志中创建一个项目。 有关 ISAPI 服务器支持函数的详细信息,请参阅 MSDN® Online 上 ISAPI 扩展参考中的 ServerSupportFunction。 安全性   IIS 6.0 中的一个最重要的变动涉及 Web 服务器安全性。为了更好地预防恶意用户和攻击者的攻击,在默认情况下,没有将 IIS 安装在 Microsoft Windows Server 2003 家族的成员上。 要点 为了更好地预防恶意用户和攻击者的攻击,没有将 IIS 默认安装到 Microsoft® Windows® Server 2003 家族的成员上。而且,当您最初安装 IIS 时,该服务在高度安全和“锁定”的模式下安装。在默认情况下,IIS 只为静态内容提供服务 - 即,ASP、ASP.N E T、服务器端包含、WebDAV 发布和 FrontPage® Server Extensions 等功能只有在启用时才工作。如果安装 IIS 之后未启用该功能,则 IIS 返回一个 404 错误。您可以为动态内容提供服务,并通过 IIS 管理器中的 Web 服务扩展节点启用这些功能。同样,如果应用程序扩展未在 IIS 中进行映射,则 IIS 返回一个 404 错误。要映射扩展,请参阅设置应用程序映射。有关如何排解 404 错误(包括 404.2 和 404.3)、与 IIS 6.0 的新安装相关的问题或从低版本的 IIS 进行升级的详细信息,请参阅疑难解答。 通过 Web 服务器证书向导和 CTL 向导,您可以同步 Web 和 NTFS 的安全设置、获得并安装服务器证书以及创建和修改证书信任列表。还可以选择一个加密服务提供程序 (CSP) 以使用证书加密数据。 详细信息,请参阅使用证书向导。 IIS 6.0 中的其他安全性变动包括下列内容: 在升级版本上禁用:除非满足下列条件之一,否则在 Windows Server 2003 家族的升级版本上禁用万维网发布服务(WWW 服务):   在开始升级过程之前,您已在 Windows 2000 Server 上运行了 IIS 锁定向导。IIS 锁定向导通过禁用不必要的功能来减少攻击面,并且它允许您确定为站点启用哪些功能。IIS Lockdown Tool 中提供了 IIS 锁定向导。 要点   如果使用 WWW 服务,则强烈建议您在升级到 Windows Server 2003 家族中的产品之前,在 Windows 2000 Server 上运行 IIS 锁定向导。IIS 锁定向导通过禁用或删除 Windows 2000 Server 安装中不需要的功能来保护计算机的安全。否则,升级后计算机上仍保留这些功能,这会使您的服务器易受攻击。 注册表项 RetainW3SVCStatus 已添加到注册表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC 的下面。在 RetainW3SVCStatus 下,您可以添加任何值,然后给它赋予一个 DWORD 值。例如,您可以创建注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\RetainW3SVCStatus\do_not_disable,并且 DWORD 值为 1。   对于无人参与的安装,“DisableWebServiceOnUpgrade = false”项存在于无人参与的安装脚本中。   通过组策略禁用 IIS:通过使用 Windows Server 2003 家族成员,域管理员可以禁止用户在其计算机上安装 IIS。   以具有低级访问权限的帐户运行:IIS 工作进程在访问权限极少的用户上下文中运行。这大大减少了潜在攻击的影响。   提高 ASP 的安全性:所有的 ASP 内置功能总是以具有极少访问权限的帐户 IUSR_computername 运行。   运行可执行文件的限制:为了运行系统文件夹中的大多数可执行文件(如 cmd.exe),您必须是 Administrators 组、LocalSystem、Interactive 或 Service 帐户的成员。该限制限制了对 Administrators 的远程访问,因此匿名用户无法运行可执行文件。   修补程序管理:对于修补程序管理,管理员可在不中断服务的情况下安装最新的安全修补程序。   已知的扩展:IIS 只为对具有已知文件扩展名的文件的请求提供服务。如果请求内容的文件扩展名未映射到已知的扩展,则服务器拒绝请求。   内容的写保护:在默认情况下,拒绝匿名用户(以 IUSR_computername 帐户运行)对 Web 内容进行写入访问。   超时和限制:在 IIS 6.0 中,默认设置是安全而主动的,这样可最大限度地减少因以前太宽松的超时和限制而造成的攻击。   上载数据限制:管理员可以限制能上载到服务器的数据。   缓冲区溢出保护:工作进程会检测缓冲区溢出,并在检测到时退出程序。   文件验证:IIS 在将请求发送到请求处理程序(ISAPI 扩展)之前会验证请求的内容是否存在。   索引资源:该权限现在会在默认情况下启用。   脚本资源访问:该权限允许访问 ASP 页脚本和其他脚本的“源代码”,它是新增功能,且在默认情况下被禁用。它可在选择了“读取”或“写入”权限时可用。   子验证:在新安装的 IIS 6.0 中,在默认情况下不再启用。有关详细信息,请参阅 匿名身份验证中的“使用子验证”部分。   UNC 身份验证:在此版本的 IIS 中,UNC 身份验证方法检查是否有用户凭据。详细信息,请参阅 UNC 身份验证。   新策略:“禁止安装 IIS”策略已经添加到 Windows Server 2003 产品家族中。该策略允许域管理员控制可以在域中哪些计算机上安装 IIS。详细信息, 请参阅 Windows 帮助中的组策略。   Fortezza:已取消了对该功能的支持。 性能   为了限制分配给 ASP 页的内存量,IIS 已经将 AspScriptFileCacheSize 的默认值设置为 250 个 ASP 页,并将 AspScriptEngineCacheMax 的默认值设置为 125 个脚本引擎。在具有一组大量经常请求的 ASP 页的站点上,可以将 ASPScriptFileCacheSize 设置得更高一些。因为 ASP 页的编译比从缓存中检索页要慢很多,所以这会改善性能。在只具有少量经常请求的 ASP 页的站点上,可通过将该数字设置得小一些来节省内存。 IIS 工具组件   Windows NT Server 的协作数据对象 (CDONTS):CDONTS 已从 Windows Server 2003 家族中删除。如果 Web 应用程序使用 CDONTS,则可以将它们转换为 Microsoft 协作数据对象 (CDO)。CDONTS 中的大多数方法在 CDO 中都有相匹配的方法,但是名称可能不同。有关平台软件开发工具包 (PSDK) 中 CDO 的参考资料,请参阅 MSDN Online 上的 Overview of CDO。   未安装 IIS 工具组件:Ad Rotator、Browser Capabilities、Content Linker、Content Rotator、Counters、Logging Utility、My Info、Page Counter、Status 和工具不随 IIS 6.0 一起安装。但是,如果您的 Web 服务器是从低版本的 IIS 升级的,则这些工具组件不会被删除。您可以从 IIS 6.0 资源工具包中获取工具组件 DLL 文件的副本。   64 位 Windows Server 2003 家族上的 IIS   在 64 位 Windows Server 2003 家族的操作系统上,IIS 作为 64 位应用程序运行。这意味着不能从 64 位 Windows Server 2003 家族的操作系统上的 IIS 调用 32 位应用程序。例如,Jet 数据库引擎将不能转换为 64 位应用程序,因此,不能使用 ActiveX® 数据对象 (ADO) 从 ASP 页打开 Microsoft Access 数据库。但是,仍可以使用 ADO 访问其他驱动程序,如 SQL 和 Exchange。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值