procedure ParseStartLine(Request : TFPHTTPConnectionRequest; AStartLine : String);
Function GetNextWord(Var S : String) : string;
Var
P : Integer;
begin
P:=Pos(' ',S);
If (P=0) then
P:=Length(S)+1;
Result:=Copy(S,1,P-1);
Delete(S,1,P);
end;
Var
S : String;
I : Integer;
begin
Request.Method:=GetNextWord(AStartLine);
Request.URL:=GetNextWord(AStartLine);
S:=Request.URL;
I:=Pos('?',S);
if (I>0) then
S:=Copy(S,1,I-1);
If (Length(S)>1) and (S[1]<>'/') then
S:='/'+S
else if S='/' then
S:='';
Request.PathInfo:=S;
S:=GetNextWord(AStartLine);
If (Pos('HTTP/',S)<>1) then
Raise EHTTPServer.CreateHelp(SErrMissingProtocol,400);
Delete(S,1,5);
Request.ProtocolVersion:=trim(S);
end;