Python异常详解

异常(exceptions)是Python中一种非常重要的类型,它和语法错误不同,是在程序运行期间引发的错误。Python中内置了很多异常,如IOError,NameError,KeyboardInterrupt等,更多的异常可以点击这里
异常的意义在于提供一种更加优雅的运行方式,例如用Python编写一个计算器,如果用户输入不能计算的对象,则可以抛出异常,并进行处理, 如下:

while True:
    try:
        x= int(input('Please In enter A number:'))
        print "Your Input is %s"%x
        break
    except Exception,e:
        print e

…阅读更多>>

基于select模块的IO复用

Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务。–百度百科

…阅读更多>>

PHP, Python和Javascript的装饰模式

修饰模式(Decorator Pattern),又叫装饰者模式,是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式。就功能而言,修饰模式相比生成子类更为灵活,这样可以给某个对象而不是整个类添加一些功能。装饰模式非常适用于灵活扩展对象的功能,下面是装饰模式的UML图:
装饰模式
…阅读更多>>

数字签名,证书,CA认证与安全套接层传输协议

开放网络中数据传输的安全性一直是一个热门的话题,特别是电子商务兴起的今天,各种攻击欺骗手段更是层出不穷,安全的网络传输需求愈显重要。互联网发展至今天,已经有比较成熟的解决方案了,最典型的就是HTTPS(安全套接层超文本传输协议), 它通过在应用层和传输层之间的安全套接层进行加密和解密,以保证信息不被第三方知晓和篡改,如下图
安全套接层传输协议

说到信息加密,就不得不说到几种加密方式,对称加密、非对称加密和哈希算法:
1, 对称加密(Symmetric-key algorithm):采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。常见的对称加密算法有DES、3DES等。
2, 非对称加密(asymmetric cryptographic algorithm):采用互成一对的公开密钥和私有密钥,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。常见的非对称加密算法有RSA,ECC等。
3, 哈希算法(Secure Hash Algorithm):又称安全散列算法,将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。这个算法具有不可逆,碰撞低等特性。常见的哈希算法有MD5,sha1等。
…阅读更多>>

超文本传输协议与网站优化

问题是在用apache的ab工具测试网站的负载时候产生的, ab工具有两个参数-c和-n,-c是用来设置并发的数量,-n是用来设置请求的数量,如用ab -c 100 -n 100 https://www.hitoy.org/来给我的网站发送100个并发,100个请求。这里疑问就产生了,并发量和请求量有什么关系,并发到底是什么,用浏览器一次打开多个网站页面会产生的大并发吗, HTTP协议的keep-alive有什么用?

查看apache官方对ab工具的解释:
-c concurrency
Number of multiple requests to perform at a time. Default is one request at a time.
-c 并发
同一时间的请求数量,默认为1。

-n requests
Number of requests to perform for the benchmarking session. The default is to just perform a single request which usually leads to non-representative benchmarking results.
-n 请求数
一次测试过程中的所有请求数量,默认为1(此设置对测试结果不具有参考意义)。 …阅读更多>>