个人理解:
简单的web服务器相当于把对应的html文件通过客户端访问的形式给到用户,但是在web的发展过程中,用户希望通过向服务器发送信息,服务器处理信息后返回相对应的网页给用户,这个时候web服务器需要通过CGI 调用CGI应用程序处理用户请求并返回相对应的信息。
简单的CGI 程序,和普通程序不一样,他们的数据不仅来自于计算机本身的硬盘,还来自于客户端的输入,在本例当中用户输入会通过cgi模块实例化FieldStorage对象来处理。
python环境下自建简易服务器:
命令:python -m CGIHTTPServer [port](默认端口号是8000)
搭建好后,通过浏览器即可访问,样子就像远程访问别人的电脑文件一样。
![](https://img.haomeiwen.com/i9053202/24db12821107d506.png)
但是要注意的是,如果该文件不具备读和执行权限的话,客户端则无法正常调用该CGI程序
(在之前直接访问该目录下的python脚本的时候,浏览器直接下载该文件了。。。)
因为HTTP是无状态信息协议,所以从一个页面跳到另外一个页面的时候,如果第二个页面要用到前面一个页面的数据时,程序需要记录客户端传来的数据,存在变量里面,然后传递给下一个页面。这个功能也可以通过cookie的方式实现。
在程序初始化的时候,在http内容传输过程中向客户端发送一段 'Set-Cookie: CPP%s=%s; path=/'的请求,请求客户端存储相应内容
![](https://img.haomeiwen.com/i9053202/e4e8ebcd52b5df04.png)
然后通过分析cookie获取信息
因为cookie传的时候是按照一定规则的,所以通过对环境变量中HTTP_COOKIE进行分析可获得cookie信息;主要操作包括分词、截取CPP之后的信息
![](https://img.haomeiwen.com/i9053202/2318ec557b657e85.png)
在浏览器里可以看到
在服务器的应达头中含有set-cookie的数据
![](https://img.haomeiwen.com/i9053202/ef7a2ef296f80030.png)
网友评论