参考网址:https://www.embedthis.com/goahead/doc/users/
route.txt
1、auth=xxx
该语句指定了该请求需要用那种方式验证身份。
(1)auth=form
表单式身份验证。该方法是在web界面中由用户输入账号和密码,提交后进行验证。
例子:
route uri=/img/
route uri=/action/login methods=GET|POST handler=action redirect=200@/index.asp redirect=401@/img/login.asp
route uri=/action/logout methods=POST handler=action redirect=200@/img/login.asp
route uri=/ auth=form handler=continue redirect=401@/img/login.asp
解析:
第一行是指定未进行登陆验证之前可访问的目录,登陆界面相关的css和js文件都需要在该目录下。
第二行指明登录操作的重定向,验证成功返回状态为200时将界面重定向到index.asp,验证失败时,继续在login.asp界面。
第三行是退出登录的重定向。
第四行定义与所有其他 URI 匹配的route,并规定基于表单的身份验证。continue 处理程序对用户进行身份验证,如果用户成功通过身份验证,则继续处理,让其他处理程序为请求提供服务并生成响应。如果身份验证失败,用户将被重定向回登录页面。
(其中的 Continue 处理程序是不执行任何操作的伪处理程序。)
(2)auth=basic
基本身份验证。该方法是在浏览器中弹出验证界面。该方法并未对密码进行任何加密处理。
route uri=/index.asp auth=basic
如下图:
(3)auth=digest
摘要式身份验证。该方法是在基本身份验证的基础上,对密码进行MD5加密。界面和设置方式与基本身份验证基本相同。
2、handlers
名字 | 描述 |
---|---|
action | 用于将URL的请求与C函数绑定的处理程序 |
continue | 不进行任何操作的伪处理程序,常用于登陆验证。 |
cgi | 为 CGI 程序提供服务的处理程序 |
file | 用于提供网页、图像和静态资源的处理程序 |
jst | 为动态内容提供 Javascript 模板的处理程序 |
options | 用于提供 HTTP 选项和跟踪方法的处理程序 |
redirect | 处理route重定向的处理程序 |
upload | 处理文件上传的处理程序 |
常用语句
route uri=/action handler=action
route uri=/ methods=OPTIONS|TRACE handler=options
route uri=/ extensions=asp,css,js handler=jst
通过上述语句指定每种请求对应的handle。
goahead源码中有这样一个函数,用于根据route.txt中的handle选择如何处理http请求
3、methods
标准的http方法有 : DELETE, GET, OPTIONS, POST, PUT,HEAD and TRACE.
序号 | 方法 | 描述 |
---|---|---|
1 | GET | 请求指定的页面信息,并返回实体主体。 |
2 | HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
3 | POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
4 | PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
5 | DELETE | 请求服务器删除指定的页面。 |
6 | OPTIONS | 允许客户端查看服务器的性能。 |
7 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
常用的就是GET与POST。
4、uri
URI、URL、URN概念:
- URI = Uniform Resource Identifier 统一资源标志符
- URL = Uniform Resource Locator 统一资源定位符
- URN = Uniform Resource Name 统一资源名称
简单来说,就是URI是抽象的定义,不管用什么方法表示,只要能定位一个资源,就叫URI。
可以使用两种方法定位:1,URL,用地址定位;2,URN 用名称定位。
所以URL是URI的子集。
(根据我浅显的理解,在goahead中,可以认为url是绝对路径,uri是相对路径。)
5、extensions
route uri=/ extensions=jst,asp handler=jst
extensions用于定义新扩展。