我正在编写需要使用Location标头响应html重定向的代码。通常,它可以找到,但是,在某些情况下,标头只是简单地说重定向到某个资源,大概是在同一主机上,例如

Location: main.html


在其他情况下,它将仅提供一个新域,例如

Location: abc.example.com


现在,如何判断重定向是否需要以给定部分URL前缀的现有主机域,而不必检查字符串后缀中的所有可能的顶级域?我唯一想做的就是简单地尝试一个结果URL,如果失败,则尝试另一个URL。

有没有人有一个聪明的解决方案或以前遇到过这个问题?

最佳答案

根据RFC 2616的14.30节,Location:标头必须指定一个absoluteURI。 RFC 2616从RFC 2396借用(请参阅第3.2.1节)absoluteURI的规范,而RFC 2396的第3节明确指出,absoluteURI是绝对URI。

任何其他类型的URI(例如您得到的样本响应)都违反RFC2616。这些响应无效,并且没有有效的解释。

关于c++ - 如何确定URL的域名和资源之间的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48805998/

10-12 07:29
查看更多