programing

웹 브라우저(클라이언트 측)에서 TCP 소켓 연결을 설정하는 방법은 무엇입니까?

linuxpc 2023. 7. 30. 17:26
반응형

웹 브라우저(클라이언트 측)에서 TCP 소켓 연결을 설정하는 방법은 무엇입니까?

는 웹소켓에 대해 읽었지만 웹소켓 위에 애플리케이션 계층 프로토콜이 있기 때문에 순수한 "소켓"은 아닌 것 같습니다."ws:"

웹 브라우저에서 순수 소켓 연결을 수행하여 웹 페이지를 활성화할 수 있는 방법이 있습니까?

여기 어둠 속에서의 내 무작위 찌르기들이 있습니다.

  • Java에서 제공하는 Applets 소켓(Java 설치 필요)
  • 플래시에서 제공하는 플래시 소켓(플래시를 설치해야 함)

그러나 HTML5에 대해서는 소켓이 아니라면 왜 웹소켓이라고 합니까?

웹 소켓 프로토콜은 "거의" 소켓일 정도로 구현이 간단합니까?

저는 웹소켓에 대해 읽었지만 웹소켓 위에 애플리케이션 계층 프로토콜이 있기 때문에 순수한 "소켓"은 아닌 것 같습니다.

[웹 소켓 프로토콜]은 구현이 매우 간단하여 [거의] 소켓에 가깝습니까?

브라우저에서 직접 일반 소켓 연결을 허용하는 것은 큰 위험을 초래하기 때문에 절대로 발생하지 않습니다.WebSockets는 브라우저에서 얻을 수 있는 원시 소켓에 거의 가깝습니다.초기 WebSockets 핸드셰이크는 HTTP 핸드셰이크(웹 서버가 프록시/브릿지할 수 있음)와 유사하며 CORS 유형 보안을 추가합니다.또한 WebSockets는 원시 TCP로 스트리밍하는 것이 아니라 메시지 기반 전송이며 각 메시지 프레임에서 2바이트 헤더를 사용하여 수행됩니다.

플래시조차도 원시 TCP 연결을 제대로 만들지 못합니다.또한 플래시 소켓은 CORS 보안을 추가하지만 인밴드 핸드셰이크 대신 플래시 소켓 연결을 통해 대상 서버의 포트 843에 연결하여 보안 정책 파일을 요청합니다.

웹 브라우저에서 순수 소켓 연결을 수행하여 웹 페이지를 활성화할 수 있는 방법이 있습니까?

예, 웹소켓을 사용할 수 있는 브라우저가 웹소켓을 통해 TCP 소켓에 직접 연결할 수 있는 내 웹소켓 확인 브리지/프록시를 사용할 수 있습니다.

그러나 HTML5에 대해서는 소켓이 아니라면 왜 웹소켓이라고 합니까?

웹 소켓은 TCP 소켓에 구축된 전송입니다.핸드셰이크 후 오버헤드가 매우 적습니다(일반적으로 2바이트 헤더만 있음).

당신의 2차 질문에 대한 카나카의 답변을 개선할 수 없습니다. 그리고 이 질문이 1년 전의 것이라는 것을 알고 있습니다.하만중요질문은한지,은,▁but.Is there any way of doing a pure socket connection from a web browser, to enliven webpages?Java / JavaScript Socket Bridge라는 프로젝트가 있습니다. 이 프로젝트는 사용자(또는 Google 검색에서 이 페이지를 검색하는 사용자)가 원하는 것일 수 있습니다.다른 사람들이 언급한 것보다 이 방법의 장점은 클라이언트 측 또는 서버 측 서비스를 실행할 필요가 없다는 것입니다.따라서, 예를 들어, 순수하게 자바스크립트로 IRC 클라이언트를 구현하고 싶었지만 웹 호스트가 연결을 프록시할 수 있는 충분한 권한을 허용하지 않는다면, 이 자바 애플릿이 방법이 될 것입니다.유일한 문제는 클라이언트가 Java를 설치하고 허용하는지 확인하는 것입니다.

WebSocket을 사용하여 클라이언트와 서버 간에 데이터를 전송할 수 있습니다.간단히 말해서, WebSockets가 도입하는 유일한 차이점은 클라이언트가 다음과 같이 한다는 것입니다.

  • 데이터 유형 및 길이와 같은 일부 헤더 바이트를 추가합니다.
  • 마스크를 추가하고 이를 사용하여 데이터를 인코딩합니다.

서버는 또한 헤더 바이트를 추가해야 하지만 데이터를 인코딩할 필요는 없습니다.

프로토콜을 올바르게 구현한 경우(서버 측, 즉 브라우저에 이미 구현이 있기 때문에) 텍스트 및 이진 데이터를 쉽게 전송할 수 있습니다. (브라우저 지원이 좁지만 특히 후자의 경우)

WebSocket의 장점은 HTTP 기반이라는 것입니다.또한 http 프록시가 사용되는 환경에서도 사용할 수 있습니다.따라서 웹소켓은 일반 tcp에 비해 인프라 호환성이 높습니다.

또한 http/WebSocket은 사용자가 직접 지정해야 하는 몇 가지 기능을 제공합니다.

  • 리디렉션
  • NAT 킵얼라이브
  • URI를 통한 멀티플렉싱
  • 프레이밍

서버에서 일부 데이터를 푸시할 것을 요청하는 경우 COMET 또는 Reverse Ajax로 널리 명명됩니다.

웹 소켓은 기본적인 방화벽 문제가 있고 일반적인 브라우저의 지원이 거의 없기 때문에 여전히 매우 인기가 없습니다.

이것은 가장 인기 있는 구현 중 하나이기 때문에 http://www.ape-project.org/ 을 볼 수 있습니다(그러나 현재는 unix/linux에만 네이티브로 제공됨).윈도우즈의 경우 가상 박스 또는 VMware 기반 구축을 사용하는 것이 좋습니다.)

언급URL : https://stackoverflow.com/questions/8051516/how-to-establish-a-tcp-socket-connection-from-a-web-browser-client-side

반응형