2015-01-12 4 views
-1

컨텍스트 : 나는 웹 서버를타이밍 측면에서 HTTP 요청이 중첩되어 있습니까?

예를 만드는 중이라서 :의 이미지를 포함 일부 마크 업을 포함하는 파일 index.htm으로이 있다고 가정 해 봅시다.

먼저 클라이언트가 서버에 index.htm에 대한 요청을 보냅니다. 그런 다음 서버는 마크 업으로 응답합니다.

클라이언트가 이미지에 대한 두 번째 요청을 보내기 전에 1

서버가 클라이언트에 모든 마크 업을 보낼 수 있습니까 질문? 모든 마크 업 서버에서 수신되기 전에

또는

클라이언트는 이미지에 대한 요청을 보낼 수 있습니까? 모든 마크 업이 추가 요청하기 전에 수신되면

질문 2

연결이 폐쇄하고 새로운 이미지를 위해 열?

답변

1

클라이언트가 이미지를 두 번째로 요청하기 전에 서버가 클라이언트에게 모든 마크 업을 보냅니 까?

예. 클라이언트는 초기 HTML 문서가 완전히 수신되고 성공적으로 파싱 된 후에 HTML에 언급 된 리소스에 대한 요청 만 시작합니다.

성능상의 이유로 DOM을 가능한 한 빨리 전달해야합니다.

추가 요청 전에 모든 마크 업을받은 경우 연결이 닫히고 이미지에 대해 새 마크 업이 열렸습니까?

다릅니다. HTTP는 지속적인 연결을 지원하지만 브라우저는 여러 개의 동시 연결을 시도 할 수도 있습니다.

0

클라이언트 (브라우저)는 다음에로드 할 파일을 결정하기 위해 HTML 문서를 가져와야합니다. 이러한 유형의 디자인에는 여러 가지 이유가 있습니다. 나는 몇 가지 생각할 수 있지만, 다른 사람들은 이것에 대해 더 많이 알 것입니다.

  1. 일부 HTTP 요청 (대부분의 사람이 요청하지 않음)은 그림 파일에 관심이 없습니다.
  2. (들어오는 모든 HTTP 요청에 대해) 나가는 HTML 파일을 구문 분석하기 위해 웹 서버 (시간당 수백만 건의 요청을받을 수 있음)가 매우 노동 집약적이며 비효율적 일 수 있으며 보내야 할 그림이 무엇인지 해독 할 수 있습니다 . HTML 구문 분석은 데이터 전송 (서식 지정, 레이아웃, HTML의 코딩 오류를 우아하게 처리)과는 아무런 관련이없는 다른 이유로 인해 HTML을 아주 상세하게 구문 분석해야하는 브라우저의 작업입니다.
  3. 종종 (다른 도메인의) 포함 된 그림이 다른 웹 서버에 있습니다. 분명히 브라우저는이 사진을 얻기 위해 작업을해야합니다. 왜 모든 그림을 얻지 않습니까?
  4. HTTP를 통한 많은 데이터 전송은 JavaScript와 관련이 있습니다. 웹 서버가 나가는 페이지의 모든 자바 스크립트를 분석해야하는 것은 더욱 악몽이 될 것입니다. JavaScript 처리는 브라우저의 작업 (일반적으로 및/또는 대부분)입니다.

메모 : 일부 웹 서버는 파일 전처리를 위해 JavaScript를 처리합니다. 자바 스크립트를 기반으로하는 일부 웹 서버 아키텍처 (가장 중요한 node.js)가 있습니다. 그러나 이것은 귀하의 질문에서 분기됩니다.

두 번째 질문은 더 복잡합니다. 최신 버전의 HTTP는 여러 GET 또는 POST 트랜잭션에 동일한 연결을 재사용 할 수 있습니다. 나는 여기 전문가가 아니다. 여기 읽어 보시기 바랍니다 : 도움이

http://en.wikipedia.org/wiki/HTTP_persistent_connection

희망을.

+0

첫 번째 질문을 오해했을 수도 있습니다. 브라우저에 여러 개의 연결이 동시에 열려있을 수 있기 때문에 데이터가 도착할 순서를 예측하기가 어렵습니다. 이는 브라우저가 데이터 전송을 관리하는 방법에 대한 구현 세부 정보를 기반으로합니다. 이는 브라우저마다 다를 수 있습니다. 나는 그 대답을 확신하지 못한다. – chorpita

관련 문제