在做关联的时候我想关联从某个位置开始直到http协议行的结束,比如我想查看服务器返回值中的Server的值。
使用web_reg_save_param函数,左边界为"Server:",右边界我假设为“\n”
以访问百度做试验,脚本如下:
- Action()
- {
- web_reg_save_param("servers",
- "LB=Server:",
- "RB=\n",
- "Ord=All",
- "NotFound=WARNING",
- "Search=Headers",
- LAST);
- web_url("www.baidu.com",
- "URL=http://www.baidu.com/",
- "Resource=0",
- "RecContentType=text/html",
- "Referer=",
- "Snapshot=t1.inf",
- "Mode=HTML",
- EXTRARES,
- "Url=/img/i-1.0.0.png", ENDITEM,
- "Url=/img/bg-1.0.0.gif", ENDITEM,
- "Url=/js/bdsug.js?v=1.0.3.0", ENDITEM,
- "Url=/favicon.ico", "Referer=", ENDITEM,
- LAST);
- return 0;
- }
跑出来结果如下:
备忘:
1、 HTTP指令由多行组成,以一个空行结束;
2、 HTTP指令行尾是有\r \n 组成
3、 Connection: Keep-Alive 告知服务器处理完此条指令后不要断开连接(默认情况下,服务器处理一条指令后,立即断开连接);
4、 如果出现错误的指令,即使有上述的命令行,服务器也会自动断开连接。
下面mark下\r \n的区别。
'\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格。
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。