2 배 업데이트
짧은 대답 : 아니요. 경로 및 프로토콜 필드 만 지정할 수 있습니다.
더 긴 답변 :
JavaScript WebSockets API 에는 클라이언트 / 브라우저가 보낼 추가 헤더를 지정하는 방법이 없습니다 . HTTP 경로 ( "GET / xyz") 및 프로토콜 헤더 ( "Sec-WebSocket-Protocol")는 WebSocket 생성자에서 지정할 수 있습니다.
Sec-WebSocket-Protocol 헤더 (웹 소켓 특정 인증에 사용되도록 확장되는 경우도 있음)는 WebSocket 생성자에 대한 선택적 두 번째 인수에서 생성됩니다.
var ws = new WebSocket("ws://example.com/path", "protocol");
var ws = new WebSocket("ws://example.com/path", ["protocol1", "protocol2"]);
위의 결과는 다음과 같습니다.
Sec-WebSocket-Protocol: protocol
과
Sec-WebSocket-Protocol: protocol1, protocol2
WebSocket 인증 / 권한 부여를 달성하기위한 일반적인 패턴은 WebSocket 클라이언트를 호스팅하는 페이지가 서버로부터 티켓을 요청한 다음 URL / 쿼리 문자열, 프로토콜 필드의 WebSocket 연결 설정 중에이 티켓을 전달하는 티켓팅 시스템을 구현하는 것입니다. 또는 연결이 설정된 후 첫 번째 메시지로 필요합니다. 그런 다음 서버는 티켓이 유효한 경우 (연결이 존재하고, 이미 사용되지 않았거나, 티켓 일치로 인코딩 된 클라이언트 IP, 티켓의 타임 스탬프가 최근 인 경우 등) 연결을 계속 허용합니다. 다음은 WebSocket 보안 정보를 요약 한 것입니다 : https://devcenter.heroku.com/articles/websocket-security
기본 인증은 이전에는 옵션 이었지만 더 이상 사용되지 않으며 최신 브라우저는 지정된 경우에도 헤더를 보내지 않습니다.
기본 인증 정보 (더 이상 사용되지 않음) :
Authorization 헤더는 WebSocket URI의 사용자 이름 및 비밀번호 (또는 사용자 이름) 필드에서 생성됩니다.
var ws = new WebSocket("ws://username:password@example.com")
위의 결과는 문자열 "username : password"base64로 다음 헤더를 생성합니다.
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Chrome 55 및 Firefox 50에서 기본 인증을 테스트했으며 기본 인증 정보가 실제로 서버와 협상되어 있는지 확인했습니다 (Safari에서는 작동하지 않을 수 있음).
기본 인증 답변 을 제공 한 Dmitry Frank의 감사