2012年(27)
分类:
2012-10-31 11:01:53
int websDefaultHandler(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg,
char_t *url, char_t *path, char_t *query)
功能:处理一个默认的url请求。
说明:是处理除了/goform,/cgi-bin,/的所有page(html、css、image)、asp请求的处理。
1. 判断请求的路径是否正确。
2. 如果路径中没有包含页面,则调用默认的页面,例如url为/my/,则认为/my/default.asp。
3. 打开请求的page和查询page的状态信息
4. 输出HTTP response header
5. 如果是asp文件,则需要添加一些HTTP response header
6. 如果是asp请求,由websAspRequest处理。
7. 建立输出page数据到浏览器的处理句柄。这个输出是在web服务器主循环while中,看到有SOCKET_WRITABLE,才把page数据输出去。处理输出数据的函数是websDefaultWriteEvent。
-----------------------------------------------------------------------------------------------------------------
int websValidateUrl(webs_t wp, char_t *path)
功能:判断路径是否有效的函数。
说明:这个函数在
1. 首先将“\”转换为“/”
2. 然后将路径按照“/”,分成一块块。
3. 对于“..”要越到上一层,最后生成的路径是个没有“..”、“.”的绝对路径,以“/”开始。
-----------------------------------------------------------------------------------------------------------------
static void websDefaultWriteEvent(webs_t wp)
功能:将page输出到浏览器的函数。
说明:该函数只处理page,不处理asp。
-----------------------------------------------------------------------------------------------------------------
void websDefaultOpen()
功能:初始化变量
说明:
-----------------------------------------------------------------------------------------------------------------
void websDefaultClose()
功能:清空变量
说明:
-----------------------------------------------------------------------------------------------------------------
char_t *websGetDefaultPage()
功能:获得默认页面。
说明:
这个对应有路径,但没有具体页面的url。不包括更目录/,即主页面。
-----------------------------------------------------------------------------------------------------------------
char_t *websGetDefaultDir()
功能:获得默认的路径
说明:
就是/ata0/webs/www,即主路径“/”
-----------------------------------------------------------------------------------------------------------------
void websSetDefaultPage(char_t *page)
功能:设置默认的页面
说明:
-----------------------------------------------------------------------------------------------------------------
void websSetDefaultDir(char_t *dir)
功能:设置默认的路径
说明:
-----------------------------------------------------------------------------------------------------------------