一:服务器启动
./build/linux-x86-default/bin/goahead-test -v --home /etc/goahead /home/luoxuandong/Desktop/goahead-3.6.5/test/web
-v表示版本号
--home 表示家目录
/etc/goahead 表示的是route.txt 等配置文件存在的路径。
/home/luoxuandong/Desktop/goahead-3.6.5/test/web 表示的是xxx.html等文件存在的路径。
二:用网页去连接客户端。
http://127.0.0.1:18080/index.html
那么就会去找/home/luoxuandong/Desktop/goahead-3.6.5/test/web路径下有没有index.html文件。如果有就发给客网页客户端显示。如果么有就报错。
http://127.0.0.1:18080/haha/big.txt
那么就会去找/home/luoxuandong/Desktop/goahead-3.6.5/test/web路径下有没有haha目录,该目录下有没有big.txt文件。如果有就发给客网页客户端显示。如果么有就报错。
准备:(1)修改actionHandler函数。在其中加入printf打印
1.就会解析到,首先根据/action找到对应字符串也就是由websAddRoute定义的路由。
2.然后根据对应的字符串,找到对应的处理函数。websDefineHandler 定义了字符串和处理函数的哈希表映射。
3.执行这个处理函数。printf将在服务器打印出来
http://127.0.0.1:18080/action/showTest
同上:
准备:(1)在test.c中main()加入websDefineAction("showTest", showTest);
(2)在test.c中main()之上,加入函数定义。static void showTest(Webs *wp){printf("test\n")}
1.就会解析到,首先根据/action找到对应字符串也就是由websAddRoute定义的路由。
2.然后根据对应的字符串,找到对应的处理函数。websDefineHandler 定义了字符串和处理函数的哈希表映射。
3.执行这个处理函数。在这个action的处理函数中,又用了一个和调用action处理函数一样的机制。需要我们去注册一个action下的处理函数,然后匹配根据字符串,来对应,这里注册通过websDefineAction("sessionTest", sessionTest);来注册,也就是
客户端的url为http://127.0.0.1:18080/action/showTest的时候经过action处理函数处理,然后又通过showtest的处理函数去处理。
那么:当http://127.0.0.1:18080/action/big.txt,服务器会不会
去找/home/luoxuandong/Desktop/goahead-3.6.5/test/web路径下有没有acton目录,big.txt文件?
实验结果:不会,他会调用到了action的处理函数,这个具体应该是跟服务器解析URL字符串后的处理有关系。