programing

매우 큰 HTTP 요구 대 다수의 작은 요구

codeshow 2023. 3. 8. 21:37
반응형

매우 큰 HTTP 요구 대 다수의 작은 요구

서버에서 클라이언트로 2D 어레이(Json)를 전송해야 합니다.크기는 400x400 정도이며, 각 엔트리는 4글자 내외입니다.즉, 약 640KB의 데이터가 됩니다.

다음 중 어떤 극단적인 접근법이 더 나을까요?

  1. 저는 모든 데이터에 대해 한꺼번에 큰 HTTP 요청을 합니다.
  2. 400개의 요청을 작성했습니다.각 요청은 1개의 행을 요구합니다(약 1.6KB).

저는 최적의 접근법이 중간 어디쯤이라고 생각합니다.이 데이터에 가장 적합한 단일 요청 크기를 알려 주실 수 있습니까?

감사해요.

하나의 큰 것과 여러 개의 작은 것을 선택할 때 고려해야 할 사항:

  • 단일 요청의 경우 데이터가 도착하면 점진적인 데이터 처리를 수행할 수 없습니다.무엇을 하기 전에 패킷이 완전히 도착할 때까지 기다려야 합니다.실패하면 모든 것을 처음부터 다시 시작해야 합니다.
  • 다중 요청의 경우 점진적인 데이터 처리를 수행할 수 있습니다.그러나 이제 여러 장애의 가능성과 이러한 장애로부터 복구하는 방법을 고려해야 합니다.
  • 각 요청마다 여러 요청의 오버헤드가 발생합니다.이는 앱이 사용하게 될 추가 대역폭입니다.
  • 일부 HTTP 에이전트는 동일한 서버에 대한 동시 요청 수를 제한하므로 이 문제를 해결하려면 몇 가지 논리를 수행해야 할 수 있습니다.
  • 응답 압축은 단일 요청 사례에 더 적합합니다.
  • 여러 번 요청할 경우 데이터에 전체 메모리를 할당할 필요가 없습니다.물론 640KB는 메모리의 큰 청크가 아니기 때문에 할당 빈도에 따라 큰 고려 사항이 아닐 수 있습니다.
  • 프로세스가 조기에 종료된 경우(Cancel 버튼 또는 앱이 종료되거나 브라우저에서 페이지 밖으로 이동함)는 단일 요청으로 전체 응답 다운로드가 완료되지만, 여러 요청의 경우 아직 코드가 시작되지 않은 요청은 실행되지 않습니다.

솔직히 말하면, 저는 마지막 두 가지에 대해 크게 걱정하지 않고 1) 점진적인 데이터 처리가 중요하며 2) 장애 및 부분 데이터에 대한 앱 허용도가 어느 정도인지 선택하는 것이 저의 선택입니다.

현재의 표준에서는 매우 느린 접속을 처리하고 있어 증분 업데이트가 필요한 경우를 제외하고 한 번의 요청으로 수행합니다.

이것에 의해, 응답의 압축 효율이 향상해, 여분의 HTTP 요구나 응답 헤더의 오버헤드를 회피할 수 있습니다.

, 대규모 요구에는 서버에 취약성이 있는 경우가 있습니다.

언급URL : https://stackoverflow.com/questions/3138371/very-large-http-request-vs-many-small-requests

반응형