Skip to content

WebSocket 온라인 테스트 (ws/wss 클라이언트)

웹소켓 온라인 테스트(ws/wss): 바이너리를 HEX로 보고 HEX/Base64로 실제 바이너리 전송. 종료 코드·이유·점검 목록 표시. 메시지는 저희 서버를 거치지 않고 직접 전송.

브라우저 실행 무료
브라우저가 입력한 서버로 메시지를 직접 보냅니다. go-tools 서버를 거치지 않습니다.
예시 입력: (제3자 에코 서비스: 가용성이 보장되지 않으며, 메시지가 해당 제3자에게 전송됩니다)
연결 안 됨

메시지가 여기에 표시됩니다. '연결'을 누르기 전에는 WebSocket 연결을 열지 않습니다.

주기 전송(애플리케이션 하트비트)
ms

타이머에 맞춰 일반 텍스트 메시지를 보냅니다. 프로토콜 수준의 ping 프레임이 아닙니다. 웹 페이지는 ping/pong 프레임을 보낼 수도 볼 수도 없습니다. 이를 예상하지 않는 서버는 연결을 닫을 수 있으므로 기본값은 꺼짐입니다.

연결, 텍스트·바이너리 메시지, 종료 코드, 핸드셰이크 실패, 연결 타임아웃, Socket.IO 핸드셰이크, 하트비트, 재연결, 10,000개 메시지 폭주는 로컬 WebSocket 서버를 상대로 엔드투엔드 테스트로 검증합니다. 이 페이지에 설명한 브라우저 동작은 2026년 10월 Chromium, Firefox, WebKit에서 측정한 결과입니다. — Go Tools 팀 · Oct 13, 2026

Go Tools 엔지니어링 팀이 제작하고 검증했습니다.

WebSocket 테스트 빠른 답변

이 HTTPS 페이지에서 ws://localhost에 연결할 수 있나요?

Chrome에서는 로컬 네트워크 접근을 허용하면 가능 브라우저에 따라 다릅니다(2026년 10월 기준). Chrome 147 이상은 이 페이지가 로컬 네트워크의 기기에 접근해도 되는지 먼저 묻습니다. '허용'을 선택하면 ws://localhost와 LAN IP 주소로의 ws:// 연결이 됩니다. Firefox는 localhost에는 바로 연결하지만 LAN 주소는 차단합니다. Safari는 HTTPS 페이지에서의 ws://를 차단합니다.

연결 실패 시 1006만 표시되는 이유는?

브라우저가 이유를 숨김 핸드셰이크가 실패하면 브라우저는 페이지에 error 이벤트와 종료 코드 1006만 전달해야 하며, HTTP 상태나 이유는 알려 주지 않습니다. F12를 누르면 Chrome과 Edge 콘솔에 서버가 반환한 상태 코드가 표시됩니다.

Authorization 헤더를 추가할 수 있나요?

브라우저는 헤더를 설정할 수 없음 아닙니다. 브라우저 WebSocket API에는 요청 헤더를 설정하는 방법이 없습니다. 토큰은 URL 매개변수, 서브프로토콜, 쿠키 중 서버가 받아들이는 방식으로 전달하십시오.

하트비트는 ping 프레임인가요?

일반 메시지입니다 아닙니다. 웹 페이지는 프로토콜 수준의 ping/pong 프레임을 보낼 수도 볼 수도 없으며, 서버의 ping에는 브라우저가 알아서 응답합니다. 이 도구의 주기 전송은 일정 간격으로 보내는 일반 텍스트 메시지이며, 기본값은 꺼짐입니다.

Socket.IO 서버에 연결되지 않는 이유는?

Socket.IO 프리셋 사용 Socket.IO는 순수 WebSocket이 아닙니다. Socket.IO 프리셋을 선택하십시오. /socket.io/?EIO=4&transport=websocket에 연결하고, open 패킷에 40으로 답하며, ping 2마다 pong 3으로 응답합니다(Socket.IO v3/v4).

온라인 WebSocket 테스터란 무엇인가요?

WebSocket 테스터는 WebSocket 서버에 연결해 서버가 연결을 받아들이는지, 무엇을 돌려보내는지 확인하는 클라이언트입니다. ws:// 또는 wss:// 주소를 입력해 연결하고, 텍스트나 바이너리 메시지를 보내고 응답을 읽습니다. 클라이언트 코드를 작성하지 않고 백엔드 엔드포인트, 리버스 프록시, WebSocket을 쓰는 장치를 확인하는 가장 빠른 방법입니다.

이 테스터는 브라우저에서 동작합니다. 연결은 브라우저에서 입력한 서버로 바로 이어지며, 메시지는 go-tools 서버를 거치지 않습니다. 그만큼 브라우저의 제약도 그대로 따릅니다. 사용자 지정 요청 헤더를 추가할 수 없고, 프로토콜 수준의 ping 프레임을 보낼 수 없으며, 핸드셰이크가 실패해도 브라우저는 페이지에 종료 코드 1006만 알려 줄 뿐 이유는 알려 주지 않습니다.

브라우저 콘솔만 쓸 때와 비교해 더해지는 기능은 다음과 같습니다. 바이너리 메시지를 HEX(또는 Base64)로 표시하고 HEX나 Base64로 실제 바이너리 프레임을 전송, JSON 자동 정렬, 종료 코드 설명, 연결 실패 시 점검 목록, 브라우저가 차단할 가능성이 큰 주소에 대한 연결 전 경고, 초당 약 2,000개의 메시지(실측)에도 느려지지 않는 로그가 있습니다.

09:30:01.204 · Connecting to ws://localhost:8080/ws
09:30:01.219 · Connected · subprotocol: chat
09:30:02.517 → TXT 17 B {"type":"hello"}
09:30:02.531 ← TXT 25 B {"type":"hello","ok":true}
09:30:03.002 → BIN 4 B 48 69 00 FF
09:30:03.010 ← BIN 4 B 48 69 00 FF
09:30:09.880 · Closed · code 4001: application-defined code

WebSocket 테스터의 기능

localhost와 LAN: 연결 전 브라우저별 안내

연결하기 전에 주소를 확인합니다. 이 HTTPS 페이지에서 도메인 이름으로 향하는 일반 ws://는 차단되므로 이를 알리고 wss://를 권합니다. localhost와 LAN IP 주소라면 Chrome이 로컬 네트워크 접근 허용을 요청한다는 점, Firefox와 Safari는 어떻게 다른지 알려 줍니다(2026년 10월 기준).

바이너리는 HEX로 표시, 실제 바이너리로 전송

받은 바이너리 메시지는 한 줄에 16바이트씩 HEX로, 또는 Base64로 표시됩니다. 48 69 00 FF, 0x48,0x69 또는 Base64로 바이트를 입력하면 바이너리 메시지로 전송됩니다. 잘못된 문자와 홀수 개의 자릿수는 위치와 함께 알려 주고, 바이트 미리보기로 무엇이 전송될지 정확히 확인할 수 있습니다.

바로 대응할 수 있는 종료 코드와 실패 안내

연결이 종료될 때마다 코드, 이유 문자열, 종료 핸드셰이크 완료 여부를 표시하며, 표준 코드 1000–1015에는 의미를, 4000–4999 애플리케이션 코드에는 참고 설명을 붙입니다. 연결이 열리기 전에 실패하면 추측 대신 점검 목록을 보여 줍니다.

검색과 내보내기가 되는 빠른 로그

메시지는 프레임마다 한 번씩 그려지므로 자체 테스트에서 초당 약 2,000개가 와도 페이지가 멈추지 않았습니다. 각 항목에는 방향, 밀리초 단위 타임스탬프, 유형, 바이트 크기가 표시됩니다. 방향별 필터, 검색, 화면 일시 정지, 최근 N개 유지, 복사, 텍스트로 내보내기를 지원합니다.

서브프로토콜, 타임아웃, Socket.IO 프리셋

서브프로토콜을 하나 이상(쉼표로 구분) 요청하고 서버가 그중 하나를 확정했는지 확인할 수 있습니다. 연결 타임아웃은 서버가 응답하지 않는 핸드셰이크를 끝냅니다. Socket.IO 프리셋은 Engine.IO v4 핸드셰이크를 완료하고 ping에도 대신 응답합니다.

필요할 때만 켜는 하트비트와 재연결

주기 전송은 원하는 메시지를 일정 간격으로 반복해 보내고, 자동 재연결은 예기치 않게 끊긴 뒤 지수 백오프로 다시 시도합니다. 둘 다 기본값은 꺼짐이며, 요청하지 않은 것을 도구가 보내는 일은 없습니다.

WebSocket 테스트 예시: localhost, 바이너리, 종료 코드, Socket.IO

로컬 개발 서버 테스트

ws://localhost:8080/ws
연결됨
→ TXT 17 B {"type":"hello"}
← TXT 25 B {"type":"hello","ok":true}

Chrome 147 이상에서는 브라우저가 먼저 로컬 네트워크 접근을 허용할지 묻습니다. '허용'을 선택하십시오. Firefox는 localhost에 바로 연결되고, Safari는 이 HTTPS 페이지에서의 ws://를 차단합니다(2026년 10월 기준).

HEX로 바이너리 메시지 보내기

48 69 00 FF
→ BIN 4 B 48 69 00 FF

HEX 모드에서는 '48 69 00 FF'라는 텍스트가 아니라 이 4바이트로 된 바이너리 메시지를 보냅니다. Base64 SGkA/w==도 같은 4바이트를 보냅니다.

서버 종료 읽기

서버가 코드 4001, 이유 "token expired"로 종료
종료됨 · 코드 4001: 애플리케이션 정의 코드 · 종료 핸드셰이크 완료
이유: token expired

4000–4999 코드는 애플리케이션이 정의하므로 4001의 의미는 서버 문서에서 확인해야 합니다. 1000–1015는 표준 코드이며 로그에 의미가 표시됩니다.

Socket.IO 서버에 연결

프로토콜: Socket.IO v3/v4, 주소 ws://localhost:3000
연결 중: ws://localhost:3000/socket.io/?EIO=4&transport=websocket
← 0{"sid":"…","pingInterval":25000,…}
→ 40
← 40{"sid":"…"}

프리셋이 Socket.IO 경로와 쿼리를 채우고, 40으로 답해 기본 네임스페이스에 참여하며, ping 2마다 3으로 응답합니다. 이벤트는 42["event","data"] 형식으로 보냅니다.

WebSocket 온라인 테스트 방법

  1. 1

    서버 주소 입력

    ws:// 또는 wss:// 주소를 입력하거나 붙여넣습니다. http://와 https://는 각각 ws://와 wss://로 처리됩니다. 주소 아래의 안내를 확인하십시오. 브라우저가 차단할 가능성이 크면 경고가 표시됩니다.

  2. 2

    필요하면 서브프로토콜 추가

    mqtt처럼 서브프로토콜이 필요한 서버도 있습니다. 하나 이상을 쉼표로 구분해 입력합니다. 연결 후 서버가 어느 것을 확정했는지 로그에 표시됩니다.

  3. 3

    연결

    '연결'을 누릅니다. Chrome에서 localhost나 LAN 주소에 연결할 때 로컬 네트워크 접근을 묻는 창이 뜨면 '허용'을 선택하십시오. 연결에 실패하면 표시되는 점검 목록을 따라 확인하십시오.

  4. 4

    메시지 송수신

    텍스트, HEX, Base64 중 하나를 고르고 미리보기를 확인한 뒤 Ctrl+Enter를 누릅니다. 받은 JSON은 정렬되어 보이고 바이너리는 HEX로 표시됩니다. 로그 도구 모음에서 바이너리를 Base64 표시로 전환할 수 있습니다.

  5. 5

    필터링 후 복사 또는 내보내기

    방향별로 필터링하거나 로그를 검색하고, 메시지가 쏟아질 때는 화면을 일시 정지합니다. 그런 다음 타임스탬프, 방향, 바이트 크기가 포함된 텍스트로 로그를 복사하거나 내보냅니다.

흔한 WebSocket 연결 실수

HTTPS 페이지에서 도메인 이름으로 ws:// 연결

브라우저는 HTTPS로 불러온 페이지에서 도메인 이름으로 향하는 암호화되지 않은 ws:// 연결을 차단합니다(혼합 콘텐츠). Chrome과 Firefox는 SecurityError로 즉시 거부합니다. wss://를 사용하고, Chrome에서 LAN 서버에 연결할 때는 IP 주소로 입력하십시오(로컬 네트워크 접근을 허용해야 함).

✗ 오류
ws://api.example.com/ws
✓ 정상
wss://api.example.com/ws

텍스트 모드에서 HEX 입력

텍스트 모드에서 48 69는 4, 8, 공백, 6, 9라는 텍스트 문자로 전송됩니다. HEX로 전환하면 0x48 0x69 두 바이트가 바이너리 메시지로 전송됩니다.

✗ 오류
텍스트 모드: 48 69 → TXT 5 B
✓ 정상
HEX 모드: 48 69 → BIN 2 B

Socket.IO URL을 일반 WebSocket으로 사용

Socket.IO 서버는 루트 경로로 들어오는 일반 WebSocket을 거부하며, 핸드셰이크와 ping에 응답이 없으면 연결을 닫습니다. Socket.IO 프리셋을 사용하십시오.

✗ 오류
ws://localhost:3000
✓ 정상
ws://localhost:3000/socket.io/?EIO=4&transport=websocket

요청 헤더에 토큰 넣기

브라우저는 WebSocket 핸드셰이크에 Authorization 헤더를 보낼 수 없습니다. 서버가 허용한다면 토큰을 URL 매개변수나 서브프로토콜로 전달하십시오.

✗ 오류
Authorization: Bearer eyJ…
✓ 정상
wss://api.example.com/ws?token=eyJ…

온라인 WebSocket 테스터가 유용한 경우

백엔드 엔드포인트 확인
프런트엔드가 만들어지기 전에 새 WebSocket 경로가 응답하는지, 처음 보내는 메시지가 무엇인지, 잘못된 입력을 어떻게 처리하는지 확인할 수 있습니다.
리버스 프록시 디버깅
Nginx나 게이트웨이 뒤에서 업그레이드가 통과하는지, 유휴 연결이 얼마나 유지되는지 확인할 수 있습니다.
IoT와 바이너리 프로토콜
WebSocket으로 바이너리를 주고받는 장치와 브로커의 데이터를 HEX로 읽고, HEX나 Base64로 정확한 바이트를 보낼 수 있습니다.
종료 코드 재현
토큰이 만료되거나 클라이언트가 속도 제한에 걸렸을 때처럼, 서버가 실제로 보내는 종료 코드와 이유를 확인할 수 있습니다.
대량 수신 시 렌더링 확인
서버가 초당 약 2,000개의 메시지(실측)를 보내도 페이지가 멈추지 않으며, 메시지 수와 바이트 카운터와 함께 수신 상황을 지켜볼 수 있습니다.

브라우저에서 WebSocket 연결이 동작하는 방식

연결 핸드셰이크
WebSocket은 Upgrade: websocket이 담긴 HTTP 요청으로 시작합니다. 요청 헤더(Origin, Sec-WebSocket-Key, Sec-WebSocket-Version: 13, 서브프로토콜 목록으로 만든 Sec-WebSocket-Protocol)는 브라우저가 직접 구성하며 페이지가 다른 헤더를 추가할 수 없습니다. 서버가 101 Switching Protocols로 응답하면 그때부터 양쪽이 메시지를 주고받습니다.
텍스트 메시지와 바이너리 메시지
send()에 문자열을 넘기면 UTF-8로 인코딩된 텍스트 메시지가, 바이트를 넘기면 바이너리 메시지가 전송됩니다. 페이지는 항상 완성된 메시지를 받으며 프레임, 조각, 마스크는 보지 못합니다. 이 도구는 binaryType을 arraybuffer로 설정해 바이너리 메시지가 순서대로 도착하고 HEX로 표시될 수 있게 합니다.
오류에 세부 정보가 없는 이유
WebSocket 표준은 연결이 실패한 이유를 브라우저가 스크립트에 알려 주지 못하게 합니다. DNS 실패, 거부된 포트, 인증서 오류, HTTP 401이 모두 똑같아 보이므로 페이지가 로컬 네트워크를 탐색할 수 없습니다. 페이지에는 error 이벤트와 종료 코드 1006이 전달됩니다(Firefox는 인증서 오류를 1015로 보고합니다).
혼합 콘텐츠와 로컬 네트워크 접근
HTTPS 페이지는 공개 호스트로 향하는 암호화되지 않은 ws://를 열 수 없습니다. Chrome 147부터는 WebSocket도 로컬 네트워크 접근(Local Network Access) 대상이 되어, 공개 페이지에서 localhost나 사설 IP에 접속하려면 사용자 허락이 필요합니다. Firefox는 루프백 주소를 예외로 두지만 Safari는 그렇지 않습니다(2026년 10월 기준).
종료 코드
클라이언트가 종료할 때 쓸 수 있는 코드는 1000 또는 3000–4999뿐이며, 이유는 UTF-8로 최대 123바이트입니다. 1005(상태 코드 없음)와 1006(비정상 종료)은 실제 통신에는 나타나지 않고 브라우저가 보고하는 값입니다. 1015는 일부 브라우저만 TLS 실패 시 보고합니다.

WebSocket 테스트 팁

내 컴퓨터 밖에서는 wss:// 사용
신뢰된 인증서를 쓰는 암호화된 wss://는 모든 브라우저에서 이 페이지로 공개 서버에 연결되고 URL에 담긴 토큰도 보호합니다. localhost나 LAN 주소라면 Chrome이 여전히 먼저 로컬 네트워크 권한을 요청합니다. 일반 ws://는 localhost에만 쓰십시오.
핸드셰이크가 실패하면 콘솔 확인
페이지에는 1006만 보입니다. Chrome과 Edge는 콘솔에 HTTP 상태를 출력하므로 대개 인증, 경로, 프록시 중 어디가 문제인지 바로 알 수 있습니다.
서버에서 Origin 허용
브라우저는 항상 Origin을 보냅니다. 서버가 Origin을 확인한다면 테스트하는 동안 https://go-tools.org를 허용하십시오. CORS 헤더는 WebSocket에 적용되지 않습니다.
ping은 서버가 보내도록 설정
프록시를 거치는 유휴 연결을 유지하려면 서버가 ping 프레임을 보내게 하십시오. 브라우저가 자동으로 응답합니다. 주기 전송은 프로토콜이 애플리케이션 메시지를 기대할 때만 사용하십시오.
공유하는 로그에 토큰을 남기지 않기
주소에는 토큰이 담겨 있는 경우가 많습니다. 도구는 주소와 메시지를 메모리에만 보관하지만, 내보낸 로그와 스크린샷에는 포함됩니다. 공유하기 전에 비밀 정보를 지우십시오.

WebSocket 테스터 자주 묻는 질문

이 HTTPS 페이지에서 ws://localhost나 LAN 서버를 테스트할 수 있나요?
브라우저에 따라 다릅니다(2026년 10월 기준). Chrome 147 이상은 내 컴퓨터나 로컬 네트워크로 향하는 WebSocket 연결을 로컬 네트워크 접근으로 취급합니다. 처음에 이 사이트를 허용할지 묻고, '허용'을 선택하면 ws://localhost, ws://127.0.0.1, 그리고 192.168.1.10 같은 LAN IP 주소로의 ws:// 연결이 됩니다. Chrome에서는 LAN 서버를 IP 주소로 입력해야 하며, 일반 호스트 이름(.local 제외)은 로컬 네트워크 주소로 해석되더라도 차단됩니다. Firefox는 localhost에는 바로 연결하지만 LAN 주소로의 ws://는 차단합니다. Safari는 HTTPS 페이지에서 localhost와 LAN으로 향하는 ws://를 차단합니다. wss://는 혼합 콘텐츠 규칙의 영향을 받지 않습니다. 인증서가 신뢰된다면 어느 브라우저에서든 이 페이지에서 공개 서버에 연결됩니다. 다만 localhost나 LAN 주소라면 여기서도 Chrome이 먼저 로컬 네트워크 권한을 요청합니다.
이 페이지에서 ws://example.com에 연결되지 않는 이유는 무엇인가요?
이 페이지는 HTTPS로 제공되며, 브라우저는 HTTPS 페이지에서 공개 호스트로 향하는 암호화되지 않은 ws:// 연결을 차단합니다(혼합 콘텐츠). Chrome과 Firefox는 SecurityError로 즉시 거부하며, 도구가 이를 알려 줍니다. 서버의 wss:// 주소를 사용하십시오. 일반 http로 제공되는 공개 사이트에는 이 규칙이 없지만, 최신 Chrome에서는 그런 사이트가 localhost나 LAN에 아예 접근할 수 없습니다.
코드 1006으로 연결에 실패했습니다. 원인은 무엇인가요?
1006은 종료 핸드셰이크 없이 연결이 끝났다는 뜻일 뿐입니다. 핸드셰이크가 실패하면 WebSocket 표준은 브라우저가 원인을 페이지에 숨기도록 요구합니다. 401, 404, 거부된 포트, 인증서 오류, 거부된 Origin이 모두 똑같아 보이므로(Firefox는 인증서 오류를 1015로 보고합니다) 브라우저에서 바로 연결하는 웹 테스터는 원인을 보여 줄 수 없습니다. F12를 눌러 콘솔을 열면 Chrome과 Edge가 서버가 반환한 HTTP 상태를 출력합니다. 이 도구는 연결이 열리기 전의 실패와 열린 뒤의 끊김을 구분하고, 각각의 흔한 원인을 목록으로 보여 줍니다.
Authorization 같은 사용자 지정 헤더를 추가할 수 있나요?
아닙니다. 브라우저 WebSocket API는 웹 페이지가 요청 헤더를 설정하도록 허용하지 않으며, 브라우저는 정해진 헤더만 보냅니다(Origin과 서버 자체 사이트의 쿠키 포함). 서버가 지원하는 방식에 따라 흔히 쓰는 우회 방법은 다음과 같습니다. wss://host/ws?token=…처럼 URL에 토큰을 넣는 방법, 토큰을 서브프로토콜로 전달하는 방법(토큰 문자만 허용되므로 JWT는 되지만 = 나 /가 들어간 표준 Base64는 안 되며, 서버가 해당 서브프로토콜을 되돌려 보내야 함), 쿠키를 쓰는 방법(브라우저는 페이지 자체 사이트로만 안정적으로 보내므로 이 페이지에서는 대개 서버에 도달하지 않음)입니다. Postman 같은 도구는 브라우저가 아니기 때문에 헤더를 설정할 수 있습니다.
Postman에서는 되는데 여기서는 안 되는 이유는 무엇인가요?
Postman과 명령줄 클라이언트는 어떤 헤더든 설정할 수 있고 보통 Origin을 보내지 않습니다. 브라우저는 Authorization 헤더를 추가할 수 없고 항상 Origin: https://go-tools.org를 보냅니다. 서버가 헤더 토큰을 요구하거나 Origin을 확인한다면 브라우저의 핸드셰이크를 거부합니다. Origin을 허용하거나 다른 방법으로 토큰을 전달하십시오.
하트비트가 WebSocket ping 프레임을 보내나요?
아닙니다. 웹 페이지는 프로토콜 수준의 ping/pong 프레임을 보낼 수도 볼 수도 없으며, 서버가 ping을 보내면 브라우저가 알아서 pong으로 응답합니다. 이 도구의 주기 전송은 {"type":"ping"} 같은 일반 텍스트 메시지를 설정한 간격으로 보냅니다. 그런 메시지를 예상하지 않는 서버는 연결을 닫을 수 있으므로 기본값은 꺼짐입니다. 프록시를 거치는 유휴 연결을 유지하려면 서버가 ping을 보내게 하십시오.
Socket.IO 서버에 연결되지 않는 이유는 무엇인가요?
Socket.IO는 WebSocket 위에서 동작하는 프로토콜이지 순수 WebSocket이 아닙니다. Socket.IO v3/v4 서버는 /socket.io/?EIO=4&transport=websocket 경로를 기대하고, 0으로 시작하는 open 패킷을 보내며, 기본 네임스페이스 참여를 위해 40을 기다리고, ping 2에 pong 3으로 응답하지 않으면 연결을 닫습니다. Socket.IO 프리셋을 선택하면 도구가 이 과정을 모두 처리합니다. 그다음 이벤트를 42["event","data"] 형식으로 보내면 됩니다. HTTP 롱 폴링만 쓰도록 설정된 서버는 WebSocket을 전혀 받지 않습니다.
1분쯤 지나면 연결이 끊기는 이유는 무엇인가요?
대개 리버스 프록시의 유휴 타임아웃 때문입니다. Nginx는 기본적으로 60초 동안 데이터가 오가지 않으면 프록시된 연결을 닫으며(proxy_read_timeout), 페이지에는 코드 1006이 보입니다. 타임아웃을 늘리거나 서버가 ping 프레임을 보내게 하십시오. Nginx 뒤에 있다면 proxy_set_header Upgrade $http_upgrade;와 proxy_set_header Connection "upgrade";로 업그레이드를 전달하는지도 확인하십시오(Nginx 1.29.7 이전에는 proxy_http_version 1.1;도 필요).
자체 서명 인증서를 쓰는 wss:// 서버에는 어떻게 연결하나요?
새 탭에서 https://같은-호스트:포트/를 열고 인증서 경고를 수락한 다음, 돌아와서 연결합니다. 브라우저는 해당 호스트와 포트에 대한 예외를 기억합니다. 브라우저의 보호 수준을 낮추는 일이므로 직접 관리하는 테스트 서버에만 사용하십시오.
바이너리 메시지는 어떻게 보내고 읽나요?
전송 형식으로 HEX 또는 Base64를 선택합니다. HEX는 48 69 00 FF, 0x48,0x69, 486900FF를 모두 받아들입니다. 미리보기에 바이트가 표시되며, 잘못된 문자나 홀수 개의 자릿수는 전송되지 않고 위치와 함께 표시됩니다. 받은 바이너리 메시지는 한 줄에 16바이트씩 HEX로 표시되며, 로그 도구 모음에서 Base64로 전환할 수 있습니다. 받은 HEX를 텍스트로 읽으려면 16진수 문자열 변환에 붙여넣으십시오.
메시지가 go-tools 서버를 거치나요?
아닙니다. 브라우저가 입력한 주소로 직접 연결하며, 메시지는 저희 서버를 거치지 않습니다. 또한 이 도구는 '연결'을 누르기 전까지 WebSocket 연결을 열지 않으며, 주소와 메시지를 메모리에만 보관합니다. 페이지 URL이나 브라우저 저장소에는 저장하지 않습니다. 사이트의 다른 페이지와 마찬가지로 이 페이지도 분석 및 광고 스크립트를 불러옵니다.
테스트에 쓸 수 있는 서버가 있나요?
로컬 에코를 사용하십시오. 이 페이지 안에서 동작하며 보낸 내용을 모두 그대로 돌려주고 네트워크에 연결하지 않습니다. wss://echo.websocket.org/ 같은 공개 에코 서비스도 있지만 제3자 서비스입니다. 가용성이 보장되지 않으며, 메시지가 해당 제3자에게 전송됩니다.

cURL 명령어 생성기 & 빌더

웹 & API

온라인 curl 명령어 생성기. 메서드·헤더·인증·바디를 설정하면 즉시 복사 가능한 명령어가 생성됩니다. Bearer·POST JSON·파일 업로드 프리셋. 무료, 서버 전송 없음.

htpasswd 생성기 — bcrypt, Apache MD5 (apr1) & Basic Auth

웹 & API

bcrypt, Apache MD5 (apr1), SHA-1 등으로 htpasswd 항목을 생성하는 웹 도구. Apache, nginx, Docker 설정 스니펫 포함. 100% 브라우저에서 처리 — 업로드 없음.

Open Graph 메타 태그 생성기

웹 & API

Open Graph, Twitter Card, SEO 메타 태그를 생성하고 Google·Facebook·X 실시간 미리보기로 확인하세요. 100% 무료 웹 도구, 가입 없이 코드를 복사·붙여넣기.

nginx location 테스터 — 그 블록이 이기는 이유

웹 & API

어떤 nginx location 블록이 이기고 나머지는 왜 졌는지 보여줍니다. =, ^~, ~, ~* 매칭을 브라우저 안에서 처리하는 무료 온라인 테스터입니다.

온라인 시리얼 터미널 (웹 시리얼 모니터)

웹 & API

설치 없는 웹 시리얼 모니터. Chrome·Edge에서 CH340·CP2102·ESP32·Arduino에 연결해 텍스트/HEX 송신, 주기 전송, Modbus CRC 자동 추가. 깨진 글자는 GBK로 다시 표시.

IPv4 서브넷 계산기

웹 & API

IPv4 주소와 CIDR로 네트워크·브로드캐스트 주소, 사용 가능 호스트 범위, 서브넷 마스크, 와일드카드를 계산하는 온라인 도구. RFC 3021 /31 지원, 브라우저에서 실행.