정상적인 HTTP 트래픽과 전혀 다른 것은 아닙니다.
웹 사이트를 열면 어떻게 될까요? (매우 대략적인 개요)
- 컴퓨터가 서버에 접속하여 연결됩니다.
- 서버가 데이터를 패킷으로 나눠 보내기 시작합니다.
- 컴퓨터는 패킷을 수신하고 지연 될 가능성이있는 패킷을 수신 한 다음 웹 사이트에 다시 어셈블합니다.
- 컴퓨터가받은 패킷에 대해 확인 응답을 보냅니다.
- 서버는 상당한 시간 동안 수신 확인을받지 못한 모든 패킷을 재전송합니다.
- 패킷 및 수신 확인을받는 중 모두 기다립니다.
- 사이트 표시에 필요한 모든 데이터가 전송되면 컴퓨터는 해당 시간 동안 서버에 감사하고 연결을 끊습니다.
이 프로세스의 어느 시점에서 어느 상대방이 상당한 시간 동안 응답을하지 않으면 기술적 인 문제로 가정 할 때 양쪽에서 연결이 끊어 질 수 있습니다.
"스트리밍 데이터 피드"는 어떻게됩니까? (심지어 거친 개요)
- 클라이언트가 서버에 연결하여 연결을 설정합니다.
- 서버가 클라이언트로 패킷으로 분할 된 데이터를 보내기 시작합니다.
- 클라이언트는 패킷을 수신하고 지연 될 가능성이있는 패킷을 수신 한 다음 다시 조립합니다.
- 클라이언트가받은 패킷에 대한 확인 응답을 보냅니다.
- 서버는 상당한 시간 동안 수신 확인을받지 못한 모든 패킷을 재전송합니다.
- 패킷 및 수신 확인을받는 중 모두 기다립니다.
유일한 차이는 여전히 데이터를 기대하고 있기 때문에 클라이언트가 서버에 끊지 않는 둘 다 연결을 끊도록 빨리 아니라는 것이다.
것은 웹 서버 (웹 사이트)이 많은 사람들에게 작은 데이터 조각을 전달하는 작업에 대한 전문 있다는 것입니다, 그래서 그들은 보냈습니다 당신이 한 번에 모든 데이터를 끊고 빠르게있어 . 귀하의 서버 스크립트는 단순히 을 종료하지 않고을 종료 할 수 있으며 연결은 계속 유지됩니다. 여기에 그것을 증명하는 작은 PHP 스크립트입니다 :
while (true) {
echo '.';
sleep(1);
}
이 무기한 매 초마다 새로운 .
을 보내드립니다 (웹 서버가 스크립트를 종료하고 즉시 출력을 보낼 수 없습니다에 적절하게 구성 할 필요가 있습니다).
기본 사항은 Wikipedia article about TCP/IP이고 구체적인 예는 this article about long-polling/HTTP streaming입니다.
스트리밍 중 여전히 http (포트 80)를 통해 이야기하고 있습니까? 이 작업을 수행 할 때 클라이언트가 서버에 연결하는 방법에 대한 예가 무엇입니까? 내가 잠재적으로 웹 사이트 주소를 입력하고 스트리밍 정보를 얻을 수있는 것처럼? (나는 웹 사이트를 본 적이 없다) – foreyez
@foreyez 업데이트를 참조하십시오. HTTP는 실제로 중요한 부분이 아니며 실제 연결을 처리하는 TCP/IP 위에있는 데이터 교환 프로토콜 일뿐입니다. 정보를 계속 보내지 않아도되는 임의의 임의의 서버에 연결할 수 없습니다. 웹 사이트는 정보를 "스트리밍"하지 않습니다. 웹 사이트의 크기가 한정되어 있기 때문입니다. 그러나 일반적으로 서버가 정보를 끊지 않고 계속 보내면이 방법이 효과적입니다. – deceze