客户端和服务器的质询/响应认证过程: 1.客户端发送请求; 2.服务器收到请求后,判断如果请求的资源需要认证,则返回401状态,并在response headers中加入WWW-Authenticate头部,要求客户端带上认证信息以后再发一次请求; 3.客户端收到401返回信息后,重新向服务器发送请求,并在request headers中加入Authoriaztion头部,用来说明认证的用户名、密码、算法等信息; 4.服务器再次收到请求后,判断认证信息无误,返回200,并在response headers中加入Authorization-Info头部。
公私钥加密简单来说就是提供服务方有唯一一把私有的密钥和无数把公开的密钥,他把公钥发给所有请求服务的客户端,但只有自己知道并持有私钥。通过公钥加密过的数据,只有私钥才能解开。 公钥加密的数据用私钥可以解开,用私钥加密过的数据用公钥也可以解开。加密和解密其实是双向的。后面说到的数字证书就是服务端用私钥加密后,客户端再用公钥解密;而客户端向服务器端发送预主密钥(premaster secret)的时候又是用服务器提供的公钥加密,服务器再用私钥解密。两个过程正好是双向加密解密的过程。
由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成。 <servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。 一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。
Filter开发分为二个步骤: 编写java类实现Filter接口,并实现其doFilter方法。 在 web.xml 文件中使用<filter>和<filter-mapping>元素对编写的filter类进行注册,并设置它所能拦截的资源。(动手实验) Filter链 在一个web应用中,可以开发编写多个Filter,这些Filter组合起来称之为一个Filter链。 web服务器根据Filter在web.xml文件中的注册顺序,决定先调用哪个Filter,当第一个Filter的doFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain对象传递给该方法。在doFilter方法中,开发人员如果调用了FilterChain对象的doFilter方法,则web服务器会检查FilterChain对象中是否还有filter,如果有,则调用第2个filter,如果没有,则调用目标资源。 Filter链实验(查看filterChain API文档)
Linux内核:操作系统的核心,主要提供进程管理功能、内存管理功能、文件系统管理功能、设备控制功能、和网络管理功能 实用工具:用户用于软件开发、系统管理的一些工具,比如GCC、KDE Linux SHELL:提供用户与操作系统进行交互的界面,它是命令语言、命令解释程序及程序设计语言的统称。缺省使用的是BASH(Bourne Again shell),它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能;常见的还有CSH、KSH
Python爬虫许超英python爬虫基础知识:Python基础知识Python中urllib和urllib2库的用法Python正则表达式Python爬虫框架ScrapyPython爬虫更高级的功能Python中urllib2库的用法urllib2是爬取网页非常重要的一个库:importurllib2response=urllib2.urlopen(“http://www.baidu.com”)urllib2.urlopen()printresponse.read()urllib2库的高级应用1.设置Headers有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,需要设置一些Headers的属性。agent就是请求的身份,如果没有写入请求身份,那么服务器不一定会响应,所以可以在headers中设置agent。urllib2库的高级应用headers的一些属性,下面的需要特别注意一下:User-Agent:有些服务器或Proxy会通过该值来判断是否是浏览器发出的请求Content-Type:在使用REST接口时,服务器会检查该值,用来确定HTTPBody中的内容该怎样解析。application/xml:在XMLRPC,如RESTful/SOAP调用时使用application/json:在JSONRPC调用时使用application/x-www-form-urlencoded:浏览器提交Web表单时使用在使用服务器提供的RESTful或SOAP服务时,Content-Type设置错误会导致服务器拒绝服务urllib2库的高级应用2.Proxy(代理)的设置urllib2默认会使用环境变量http_proxy来设置HTTPProxy。假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问。所以你可以设置一些代理服务器来帮助你做工作,每隔一段时间换一个代理,网站君都不知道是谁在捣鬼了,这酸爽!3.Timeout设置urlopen方法中,第三个参数就是timeout的设置,可以设置等待多久超时,为了解决一些网站实在响应过慢而造成的影响。importurllib2response=urllib2.urlopen('http://www.baidu.com',timeout=10)4.使用HTTP的PUT和DELETE方法http协议有六种请求方法,get,head,put,delete,post,options,我们有时候需要用到PUT方式或者DELETE方式请求。PUT:这个方法比较少见。HTML表单也不支持这个。本质上来讲,PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。DELETE:删除某一个资源。基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。5.使用DebugLog可以通过下面的方法把DebugLog打开,这样收发包的内容就会在屏幕上打印出来,方便调试,这个也不太常用importurllib2httpHandler=urllib2.HTTPHandler(debuglevel=1)httpsHandler=urllib2.HTTPSHandler(debuglevel=1)opener=urllib2.build_opener(httpHandler,httpsHandler)urllib2.install_opener(opener)response=urllib2.urlopen('http://www.baidu.com')URLError首先解释下URLError可能产生的原因:网络无连接,即本机无法上网连接不到特定的服务器服务器不存在HTTPERRORHTTPError是URLError的子类,在你利用urlopen方法发出一个请求时,服务器上都会对应一个应答对象response,其中它包含一个数字”状态码”。举个例子,假如response是一个”重定向”,需定位到别的地址获取文档,urllib2将对此进行处理。其他不能处理的,urlopen会产生一个HTTPError,对应相应的状态吗,HTTP状态码表示HTTP协议所返回的响应的状态。下面将状态码归结如下:100:继续客户端应当继续发送请求。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。101:转换协议在发送完这个响应最后的空行后,服务器将会切换到在Upgrade消息头中定义的那些协议。只有在切换新的协议更有好处的时候才应该采取类似措施。102:继续处理由WebDAV(RFC251
互联网发展的三个阶段: 1、ARPANET(1969) 4个结点 2、三级结构的因特网(1985) 主干网,地区网,校园网 开始引入私人公司 3、多层次ISP结构的因特网(1993) ISP-ICP-ASP
HTML(Hyper Text Markup Language 超文本标识语言) 是一种用来制作超文本文档的简单标记语言。 用HTML编写的超文本文件称为HTML文件,也称Web文件。 万维网(亦作“Web”、“WWW”、“W3”,英文全称为“World Wide Web”),是一个由许多互相链接的超文本文档组成的系统,通过互联网访问。 在这个系统中,每个有用的事物,称为一样“资源”;并且由一个全域“统一资源标识符”(URI)标识;这些资源通过超文本传输协议(HTTP)传送给使用者,而后者通过点击链接来获得资源。 万维网常被当成互联网的同义词,这是一种误解,万维网是靠着互联网运行的一项服务。
Servlet是Java技术对CGI编程的实现。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。 高效 方便 可移植性好 节省投资
如果某个类要成为Servlet,则它应该从HttpServlet 继承, 根据数据是通过GET还是POST发送,重载doGet、doPost方法之一或全部。 doGet和doPost方法都有两个参数,分别为HttpServletRequest 类型和HttpServletResponse 类型。 HttpServletRequest提供访问有关请求的信息的方法,例如表单数据、HTTP请求头等等。 HttpServletResponse除了提供用于指定HTTP应答状态(200,404等)、应答头(Content-Type,Set-Cookie等)的方法之外,最重要的是它提供了一个用于向客户端发送数据的PrintWriter 。 对于简单的Servlet来说,它的大部分工作是通过println语句生成向客户端发送的页面。 必须导入java.io包(要用到PrintWriter等类)、javax.servlet包(要用到HttpServlet等类)以及javax.servlet.http包(要用到HttpServletRequest类和HttpServletResponse类)。 doGet和doPost这两个方法是由service方法调用的,有时你可能需要直接重载service方法,比如Servlet要处理GET和POST两种请求时
J2EE角色组成开发工具商:提供组件开发工具、应用程序集成工具、应用程序部署工具、界面编辑工具。应用服务器提供商:负责设计和开发J2EE应用服务器(依据J2EE规范)应用开发人员:负责开发组件、写部署描述文件、设计界面(显示数据)应用集成人员:负责将各种界面、组件、描述文件、驱动程序、其他属性文件集成部署人员:负责将J2EE集成文件部署的应用服务器系统管理员:负责调整服务器的运行参数、监视服务器的运行情况J2EE应用开发编写和编译组件代码Servlet,JSP,EJB编写组件的部署描述符把组件装配成可部署的软件包将软件包部署到J2EE应用服务器上开发工具JBuilder商用功能完备EclipseOpenSource插件丰富
LINUX/UNIX简介是一套免费使用和自由传播的类UNIX系统主要基于INTELX86系列CPU的计算机.由全世界各地的成千上万程序员设计和实现.
全称Representational State Transfer(表述性状态移交) 由Roy Fielding在其2000年的博士论文Architectural Styles and the Design of Network-based Software Architectures(架构风格与基于网络应用软件的架构设计)中提出 有两种理解方式 REST是一种抽象的架构风格(architectural style) REST是一种为 面向互联网的应用软件 量身定制的架构风格 REST是Web自身的架构风格,是Web取得巨大成功在技术层面的原因和理论基础 REST在Web上是普适的,同时适用于Web应用和Web API REST是一种分布式应用的架构设计方法
1、接口技术的统一化 2、流程简单化 3、通过集成平台实现统一监控 4、业务模型统一化 5、业务系统间关系简单化
单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication Service)是一款不错的针对Web 应用的单点登录框架,本系统采用CAS 实现轻量级单点登录,以及对CAS登陆的用户进行有效的组织管理。
BOS最佳入门金蝶软件(中国)有限公司李彬目录BOS培训介绍BOS产品概述BIM业务建模工作流编码规则权限控制BOTP单据转换预警平台套打&报表BOS技术支持规范BOS培训介绍金蝶软件(中国)有限公司BOS培训概述BOS认证企业客户内部员工顾问班学员BOS最佳入门BOS晋阶培训BOS专题培训BOS培训培训课件演示案例BOS题库BOS培训资料最佳入门培训概述培训对象企业BOS开发工程师系统二次开发实施工程师培训目的熟悉BOS平台体现BOS平台价值学员收获了解BOS平台的技术架构,掌握BOS平台基础功能掌握BOS平台的业务流程平台掌握BOS平台的报表、套打等功能掌握BOS业务建模和开发工具的使用学习BOS平台开发业务应用系统的完整案例BOS产品概述
主题MVC设计思想MVC即Model-View-Controller,把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。MVC设计思想MVC是一种复合模式,结合了观察者模式、策略模式、组合模式、适配器模式。模型使用观察者模式,以便观察者更新,同时保持两者之间的解耦。控制器是视图的策略,视图使用组合模式实现用户界面。适配器模式用来将模型适配成符合现有视图和控制器的需要的模型。这些模式合作把MVC模式的三层解耦。MVC设计思想视图(View)代表用户交互界面,对于Web应用来说,可以是HTML,也可能是jsp、XML和Applet等。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。MVC设计思想模型(Model):是业务的处理以及业务规则的制定。模型接受视图请求的数据,并返回最终的处理结果。
nodejs是一个平台让Javascript运行在浏览器之外的平台shirlyzhang为什么适合开发服务器端程序呢?shirlyzhang模块机制异步IO,事件轮询机制模块系统遵循commonJS规范方便的定义和引入1shirlyzhangvarhttp=require('http');varuser=require('./routes/user')得到模块的导出对象module.exportsshirlyzhangrequire的一个重要行为就是它缓存了module.exports的值并且在未来再次调用require时返回同样的值。它依据被require文件的绝对路径来进行缓存。
SearchPlanner-搜索共享业务平台亚夫曾经的淘宝搜索系统架构100+个不同应用调用搜索服务20+个不同功能的子系统构成了淘宝的搜索系统存在的问题:无法提供完整的搜索服务用户体验不一致,算法团队的各种创新成果不能共享存在严重的安全隐患引擎及其它系统更新换代困难各应用重复工作,效率低下现在的淘宝搜索系统架构解决了旧架构的各种不足,将N*M的复杂关系,变为了N+M各业务在SearchPlanner平台上互相融合,涌现出了一系列创新型业务,成为了一个创新支撑平台面临的技术挑战:稳定性开发效率数据驱动的业务快速迭代SearchPlanner整体架构提供三个层次的服务:完整的搜索业务服务搜索的基础服务平台的基础服务