2013-10-08 2 views
2

일부 정적 데이터 만 보여주는 인덱스보기가있는 간단한 ASP.NET MVC 응용 프로그램이 있다고 가정합니다.웹 응용 프로그램에서 언제 연결이 설정됩니까?

웹에 stateless가 있다는 사실을 고려하여 브라우저가이 index.cshtml을 요청하면 HTTP Get 요청이 만들어지고 서버는 페이지 내용을 클라이언트에 보냅니다.

그런 경우 연결이라는 엔티티가 있습니까? 그렇다면 언제 연결이 성립 될 수 있다고 말할 수 있습니까?

희망 사항은 분명합니다.

+2

연결이 tcp 레벨에서 설정되면 http 대화가 –

답변

2

MVC 응용 프로그램을 호출하기 전에 클라이언트 (브라우저)와 기본 웹 서버 (IIS)간에 연결이 설정됩니다.

웹 응용 프로그램에서 요청을 받으면 TCP 연결이 이미 설정되어 있고 HTTP 요청이 TCP를 통해 서버로 전송되었습니다. keep-alive 의미론을 사용하면 여러 요청이 동일한 연결을 사용할 수 있으며 물론 동일한 요청에 대해 여러 작업을 호출 할 수도 있습니다.

기본적으로 연결 설정은 웹 응용 프로그램이 표시하거나 추적하는 데 특히 유용하지만 사용자가하려고하는 경우 유용하지 않습니다.

+0

연결이 브라우저 _, **에서 기본 웹 서버로 설정되었다고 말하는 것이 정확하지 않습니까? –

+0

예, 아니오. 이것은 클라이언트에 의해 시작되지만 클라이언트와 서버 모두 SYN/SYN-ACK/ACK 핸드 셰이크를 통해 TCP 연결을 설정하는 데 참여합니다. 그래도이 질문에 기술적 인 부분이 필요하다고 생각하지 않습니다. 요점은 기본적으로 웹 응용 프로그램에서는 볼 수없는 수준에서 처리된다는 것입니다. – Gerald

+0

나는 조금 더 정확한 것으로 앞섰고 나의 대답을 업데이트했다. – Gerald

1

연결은 IIS 서버/프로세스에 estabished 다음 .NET에 전달, 그래서 IIS 그것을받는 순간, 그것은

+0

을 통과합니다. 그런 경우에 이제 연결이 닫혔다 고 할 수 있습니까? – ckv

+0

나는 모든 데이터가 서버에 의해 플러시되고 클라이언트에 의해 수신되었을 때 연결이 닫혔다는 것을 (여기에 인용하지 마십시오.) 모든 데이터가 잘 전달된다는 사실을 기대합니다. 그러한 관심을 물어 볼 수 있습니까? 나는 이것이 개발자의 "범위를 벗어났다"는 것을 많이 묻겠습니다. –

1

HTTP 프로토콜은 TCP 프로토콜을 기반으로 '설정'것입니다. GET 요청이 이루어지기 전에 TCP 연결이 이루어져야합니다.

일반적으로 단일 요청/응답 상호 작용 이후에 TCP 연결이 닫히면 "연결이 닫혔습니다"가 발생합니다.

Keep-Alive를 사용하여 연결을 유지할 수 있습니다.

관련 문제