http 요청에서 절대 URL을 추출하려면 헤더를 구문 분석해야합니다. 오직 신경 쓰는 방법은 GET, POST 및 HEAD입니다. 나는 어떤 경우는 탈락이C : HTTP 헤더 구문 분석
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)는 상대 URL인지 아니면 절대 URL인지를 충분히 알려주는 2 행입니까?
3) 인코딩이 중요합니까?
4) 다른 가능한 글리치?
btw, 성능은 내가 고려해야 할 매우 중요한 요소입니다.
[here] (https://sourceforge.net/projects/ccgilib/)와 같은 알고리즘이 더 일반적 일 수 있습니다. 내 CGI 라이브러리입니다. –