服务器、Web服务器&Web框架

1. 服务器

服务器又称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

服务器的构成包括 处理器CPU、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,Web服务器等。


注意:客户层(browser):用户接口和用户请求的发出地,典型应用是网络浏览器; 
            服务器层(web server):典型应用是Web服务器和运行业务代码的应用程序服务器 
            数据层(data tier):典型应用是关系型数据库和其他后端(back-end)数据资源, 如Oracle和LDAP 等。 

2. Web服务器

Web服务器是指驻留于因特网上某种用做服务器的计算机的程序(软件),可以向浏览器等Web客户端提供文档(而浏览器负责解释这些服务器发来的文档,如html文档、asp文档等)。你可以放置网页文件,让全世界浏览;可以放置数据文件,让全世界下载。

每个页面都以 HTML 的形式传送到你的浏览器中,HTML 是一种浏览器用来描述页面内容和结构的语言。那些负责发送 HTML 到浏览器的应用称之为“Web 服务器”

动态网页技术:


注意:1)当用户请求一个*.asp(*.jsp,*.php,cgi等)页面时,Web服务器(Apache Nginx IIS)响应HTTP请求,调用asp(jsp,php,cgi等)引擎,解释(编译)被申请文件,但是这里注意了,解释和编译的仅仅是嵌入的asp(VBScript或javascript脚本语言)、jsp(Java程序段)、php(php脚本语言)、cgi(c,c++,perl,php等语言书写的外部程序)代码,如变量的代换等特定的工作,这样才能实现动态网页的实时更新。脚本在服务器端运行,不受客户端浏览器限制,便于存取数据库。
            2)若脚本中含有访问数据库的请求,就通过ODBC或者OLE DB(JDBC)与后台数据库相连,由数据库访问组件执行访库操作;
            3)ASP等脚本在服务器端解释(JSP在服务器端是编译)执行,根据访问数据库的结果集自动生成符合HTML语言的主页,最後得出一个动态生成的网页,去响应用户的请求。所有相关的发布工作由WWW服务器负责。 

从上面的分析可以看出,服务器端所做的工作就在于怎样根据客户端浏览器的请求生成对应的HTML文档,这其中还包括解释或编译嵌入的代码、访问数据库等工作。那么在“生成响应的HTML文档”前后必然就涉及到接受HTTP请求、解析HTTP请求、发送HTTP响应灯工作,不过不要担心,这些“杂活”可以由服务器端专门的软件来完成,我们的工作重点只是“根据客户端浏览器的请求生成响应的HTML文档”,可以使用python来完成(用框架,并辅之以html、javascript技术)。

目前最主流的三个Web服务器是Apache Nginx IIS(这三者都是软件,即安装在服务器端上的软件,用于响应、处理客户端发来的请求)。


Apache Nginx IIS是服务器端的软件,它们可以调用asp,jsp,php,cgi的引擎,着重从上图看它们的调用关系。

Apache HTTP Server(简称Apache)是一个开源网页服务器软件,可以在大多数计算机操作系统中运行,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

3.Web框架frame

Web 应用框架 = “Web 框架”,是建立Web 应用的一种方式。

4.cookie & session(会话)

举个例子:一家咖啡店有喝5杯咖啡免费赠一杯咖啡的优惠,然而一次性消费5杯咖啡的机会微乎其微,这时就需要某种方式来纪录某位顾客的消费数量。想象一下其实也无外乎下面的几种方案: 
1、该店的店员很厉害,能记住每位顾客的消费数量,只要顾客一走进咖啡店,店员就知道该怎么对待了。这种做法就是协议本身支持状态。 
2、发给顾客一张卡片,上面记录着消费的数量,一般还有个有效期限。每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。这种做法就是在客户端保持状态。 
3、发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员在店里的纪录本上找到这个卡号对应的纪录添加一些消费信息。这种做法就是在服务器端保持状态。 

前者是保存在客户端浏览器中(如果是长有效期的话,cookie数据则存储在浏览器的安装目录硬盘中),记录用户在某页面的设置信息(服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie)。每次浏览器向服务器发出此页面的请求时,都会读取出此页面的cookie数据中的 用户标识,连同HTTP请求一起发给服务器,服务器 验证该浏览器用户的标识信息,验证通过后送出特定的页面(根据cookie里面的设置信息)给浏览器。
cookie 的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。意思是麦当劳的会员卡只能在麦当劳的店里出示,如果某家分店还发行了自己的会员卡,那么进这家店的时候除了要出示麦当劳的会员卡,还要出示这家店的会员卡。比如想请求百度魔兽贴吧,那么浏览器不但会发送百度贴吧首页的cookie给服务器,还会发送魔兽吧的cookie给服务器。
cookie是开放的,不安全的,只要取得浏览器的使用权,就能获得一定的用户信息。

后者是存储在服务器端,当应用程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id, session id 的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。一般这个cookie的名字都是类似于SEEESIONID。但cookie可以被人为的禁止,则必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。
经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面。还有一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。比如: 
<form name="testform" action="/xxx"> 
<input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764"
<input type="text"> 
</form> 

实际上这种技术可以简单的用对action应用URL重写来代替。
日常生活中,可以将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中。
本节参考资料cookie&session
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值