精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
HTTP协议推出很早了,有了HTTP协议才有了各类门户网站和微博的成功机会,也更方便了大众在互联网上交流信息。
HTTP英文是HyperText Transfer Protocol即超文本传输协议,超的意思是不止文本有其它信息格式,它是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 作为一个应用层协议,它由请求和响应两部分构成,是一个标准的个客户端和服务器模型,它的主要特点:支持客户端/服务器模型、简单快速、灵活、无连接、无状态。
HTTP协议的文章很多,国际标准组织官网上有,国内中文的也有很多,就是本网站里也有大量的HTTP协议文章,比如HTTP协议的错误码及怎么解决的,大家可以多看看。本文重点是介绍HTTP协议开源和掌握HTTP难点开发提升架构能力。
HTTP协议开源从大到小有Apache、httplib、httpsrv(github上)和MSDN里的HTTPSVR小例子,初学者可以反过来学,先学MSDN里的HTTPSVR,这个简单,学里面的通信函数、线程和字符串处理等等,再学httplib和httpsrv(github上)里的线程池并行架构和正则式等等,最后学Apache的架构,比如参数处理和动态模块加载等等。
初学者如果想学MSDN的HTTPSVR,可以找锐英源软件,锐英源软件有源代码,这个例子是在VC6到VC2010之间MSDN里附带的例子,到现在反而不好找了。
HTTP协议本身不复杂,但是HTTP协议之上承载的功能很复杂,比如ASP.NET的扩展,在IIS里要配置版本及其它信息,不配置ASP.NET就不能工作。类似这样的形式扩展还有代理Proxy、CGI和redis等等,这些扩展库Apache都支持,在模块接口数据通道上Apache是如何支持的,这些难点的学习,是掌握HTTP难点开发提升架构能力的关键。
这些库的配置也很复杂,如果掌握好配置,就是IT行业里合格的后台维护工程师了,这些岗位有时候比软件工程师更重要。我邻居公司做大数据私有云服务,云后台的管理需要对平台的架构和性能目标要非常清楚,同样HTTP的复杂后台也是类似,一个参数配置不好,就有可能是内存和CPU狂飙,系统崩溃;配置的低了,就是并发上不去,网页和业务卡的要命。
说到配置,最后讲下我在郑州威科姆公司做Apache优化为流媒体服务器的开发和配置优化过程,流媒体需要稳定地分发媒体数据,需要和操作系统通信协议栈配合才能找出稳定的机制,另外大并发的处理也要结合操作系统的进程线程架构进行优化,不同的操作系统,表现不一样,这中间怎么找协调点,需要大量时间反复去验证。为什么招聘时要行业经验?就是想要直接的验证结果,或者是验证过程中有问题,能顺利解决。