Chinaunix首页 | 论坛 | 博客
  • 博客访问: 304250
  • 博文数量: 58
  • 博客积分: 2763
  • 博客等级: 少校
  • 技术积分: 731
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-04 19:07
文章分类

全部博文(58)

文章存档

2011年(55)

2009年(1)

2008年(2)

分类: LINUX

2011-08-13 19:25:22

Web Services的简单介绍
 
提供web服务的协议:http,https,Sun one,
web服务器的软件:Apache,IIS
web浏览器:IE,firfox,chrome,safari,opera等
web ,1989年3月诞生,传输的是ACSII
URL,统一资源定位符
URI,统一资源标识符
http协议是基于tcp的,有两个版本
     1.0 非持久连接
     1.1 支持持久连接
http/1.1协议中共定义了8中动作来表明Request—URI指定的资源的不同操作方式。
(1)OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。
(2)HEAD:向服务器索要与GET请求相一致的响应,不过响应不会被返回。
(3)GET:向特定的资源发出请求
(4)POST:向指定资源提交数据进行处理请求。
(5)PUT:向指定资源位置上传其最新内容。
(6)DELETE:删除指定资源。
(7)TRACE:回显服务器收到的请求。
(8)CONNECT:预留给能够将连接改为管道方式的代理服务器。
web object :网页对象,可以是图像,声音,动画等,各个对象是独立传输的

非持久连接:每一个对象,都得建立3次连接
持久连接:只需要第一个对象,建立连接
但是持久连接是有条件的,不可能让用户一直占有资源的,否则,其他人可能访问不了网页资源。这就需要有条件来限制:1.限定连接对象
              2.timeout,超时时间
当你访问网页的时候,有时候会显示错误信息。这些以数字开头的就表示错误的类型。
状态码:http协议的状态码有5类
  以1开头的:普通信息
    2      :正确信息
    3      :资源重定向,301永久重定向,302临时重定向
    4      :客户端错误
    5      :服务器端错误

为了实现网页访问的安全,我们可以使用SSL或TLS协议,来实现加密。
半层应用:位于应用层和传输层之间。
SSL:安全的套接字层
 版本:SSLV1,SSLV2,SSLV3
TLS:传输层安全

http端口:80
经过SSL的处理之后,http——>https
https端口:443
这是两个完全不同的协议

https协议如何实现通信:
(1)客户使用https的URL访问web服务器,要求与web服务器建立SSl连接
(2)web服务器收到客户端请求后,会将网站的证书信息传送一份给客户端
(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级
(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通信。

提供Web服务的软件
Apache确切的说是一个组织:所开发出来的软件叫httpd
Nginx 反向代理软件,静态解析
lighttpd
Sun one
应用程序服务器的软件:
  Websphere(IBM)
  Weblogic (BEA,2008年被Oracle收购)
  AppServer (Oracle)
  JBoss (Redhat的开源软件)
  Tomcat (Apache)
  Resin   (开源的)

MPM:多道处理模块,是当多个用户同时访问服务器时,我们怎么响应客户端请求的一种机制。
prefork:为每个进程开辟独立的内存,彼此不会相互影响,因此这种方式最大的优势是稳定。
worker:只要服务器启动了,在内存中开启两个worker进程,worker会在自己进程内部生成线程。这种方式的好处是可以共享资源
 
动态网页:
早期的网站是通过CGI(Common Gateway Interface,通用网关接口)来实现的。
所谓动态页面是基于客户端的不同请求,返回不同内容的页面,例如你的邮箱,和我的邮箱是不一样的。
1.CGI
若你想访问动态网页,那就是通过CGI来实现的。如果你访问的页面是由c语言或其他语言开发出来的程序,编译好的,需要读取来源用户的信息,传递给程序,并将程序运行起来时,此时就需要语言环境,我们就称之为容器吧,服务器响应后,在内存中开辟一段空间,容器进行解析,之后返回给web服务器,web服务器再返回给客户端。
2.以模块的方式
我们把容器做成服务器的模块,当有响应来时,直接通过模块进行解析。将结果返回给Web服务器,再返回给客户端。
3. fast CGI     各自独立,运行结束后,并不退出
把能够提供动态的容器做成一个完全独立的服务器,把它完全独立出来,
我们可以把数据独立出来,放到数据库中。当你的数据非常大的时候,你就可以把数据库放到一个独立的服务器上。进而就可以优化你的web服务器了。
阅读(1379) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~