我需要解析标头以从 http 请求中提取绝对 URL。我只关心的方法只有 GET、POST 和 HEAD。我想确认以下简单的逻辑/伪代码足以涵盖大多数情况,
1 url = extract the url from the first request line;
2 if (url[0] == '/') {
3 //relative url, keep reading until HOST or end of the header
4 while (nextline != "\r\n\r\n") {
5 if (nextline starts with HOST) {
6 host = extract the host value;
7 return (host+url);
8 } else {
9 continue;
10 }
11
12 }
13 return bad_req;
14 } else {
15 //absolute url, return directly, ignore HOST
16 return url;
17 }
1)有没有遗漏的案例?
2) 第 2 行是否足以判断它是相对 URL 还是绝对 URL?
3)编码重要吗?
4)其他可能的故障?
顺便说一句,性能是我需要考虑的一个非常重要的因素。