HTTP 요청을 이해해야하는 간단한 HTTP 서버를 만듭니다.HTTP 패킷을 구문 분석하는 올바른 방법은 무엇입니까?
크롬과 같은 브라우저는 HTTP 연결을 사용하여 여러 개의 HTTP 요청을 보낼 수 있다는 HTTP Pipelining 기술을 사용합니다.
이제 여러 HTTP 요청 사이의 경계를 말하기가 어렵습니다. 한 가지 명백한 예는 GET 요청과 무작위 데이터의 양식 업로드입니다.
내가 지금 어떻게 생각하는지, 내가 \r\n
과 함께 제공된 모든 데이터를 분할, 다음은 HTTP 요청과 같은 있는지, 모든 회선을 점검, 예를 들어 ^(GET|PUT|HEAD|POST|MOVE|TRACE) /[^ ]+ HTTP/[0-9]+\.[0-9]+$
하지만 여전히 어떤 아이디어가 불법이 될 수 ? (기존 HTTP 서버 라이브러리를 사용하라고 말하지 마십시오.)
파이프 라이닝과 관련하여, 거기에 있어야하는 몸체의 양 (0 이상)을 읽었을 때 연결이 끊어 졌음을 의미하는 EOF를 얻거나 아무 것도하지 않습니다. 당신은 더 많은 것을 얻을지도 모른다. 그렇지 않으면 당신이하지 않을지도 모른다). 그렇지 않으면 당신이 더 많이 보는, 그것은 또 다른 요청이다. 그래서 단지 당신이했던 것을해라. – xaxxon
Adam보다 훨씬 나은 대답입니다. –