REST是Apache基金会主席那哥们博士论文提出来的,全称比较深沉:Representational State Transfer,表面的意思就是表象状态转换,也就是描述的互联网的一些软件的通信方式
网络资源有很多表现形式,比如文本类,图片类等,比如wget下面这个网络资源:
http://www.lihuia.com/wp-content/uploads/2015/06/QQ2015062432[......]
一个能够兼容所有特性的HTTP服务器是十分复杂的,特别是一些可选项,或者是一些非传统非标准的字段的处理,更是超级麻烦
下面这个小的web server程序,不仅仅是类socket服务端接收程序,还可以返回给客户端,可以当一个测试程序,测试客户端和代理交互情况;当然如果你手快用C语言来写Socket交互,那么请直接跳过就行了
#!/usr/bin/perl -w use Socket; use Ca[......]
Status-Code给客户端提供了事物处理结果的方式,由三位数字组成,很少听说的1XX,经常看到200,304,404等状态码,除此之外,在应用程序当中,通常根据返回码可以定位客户端和服务器的异常,所以了解他们的含义十分必要
信息性状态码100~199
这些status-code比较少见,因为是HTTP/1.1才有的
100 Continue[......]
HTTP定义了一些安全方法,认为安全(比如GET,HEAD)的时候,一般来说请求是不会产生什么动作,但有些还是由web程序决定;而这个字段的作用是如果使用了一些不安全方法而产生了一些动作,那么运行HTTP应用程序可以告知用户
GET
请求报文中请求服务器发送某个资源
HEAD
同样请求服务器发送某个资源,但只响应返回头部,不会返回主体部分;这样可以使得客户端在没有获取实[……]
网络数据包千奇百怪,特别是7层HTTP信息,我膜拜一下,再一次重新读一遍这个全称Hypertext Transfer Protocol,超文本传输协议
一个真实的用户,通过了几层代理服务器的话,HTTP头部有可能会放一个X-Forwarded-For域,可以查到真实的IP,今天又碰到了另两个类似名字的域
True-Client-IP
根据这个域的名称,我觉得应该代表的就是用户的真实IP,假如经过了[……]
今天在写unit test的时候,x-forwarded-for这个域结果不一致,输入是将所有的IP域都给计算了,而输出部分仅仅把一条HTTP连接里的x-forwarded-for域算一个
一个网页请求经过了HTTP代理服务器以后,看似无法获得访问者的真实IP,因为:TCP连接是在代理和web服务器之间,而并非用户和web服务器之间的;HTTP协议是第七层协议,不会把IP层的访问者的源IP信息也发[……]