SSE — 서버가 먼저 말하는 법 · 재접속했더니 3분이 비어 있었다 · 퀴즈
이어 받기 확인
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
이벤트를 내보낸 뒤 명세가 비우라고 정한 버퍼는?
- data 버퍼와 event type 버퍼만
- data 버퍼만
- data · event type · last event ID 버퍼 전부
- last event ID 버퍼만
`id` 필드 값에 U+0000 NULL 이 들어 있으면 명세는 무엇을 하라고 하나?
- NULL 을 빼고 나머지를 id 로 쓴다
- 그 필드를 무시한다 — 마지막 id 버퍼는 그대로 둔다
- 스트림을 오류로 끝낸다
- 마지막 id 버퍼를 빈 문자열로 되돌린다
`retry: 3s` 를 받은 클라이언트의 재접속 시간은?
- 3000밀리초로 바뀐다 — 단위 s 를 초로 해석한다
- 3밀리초로 바뀐다 — 앞의 숫자 부분만 읽는다
- 구현이 정한 기본 재접속 시간으로 되돌아간다
- 바뀌지 않는다 — ASCII 숫자로만 된 값이 아니다
연결이 이벤트 한복판에서 끊겼을 때(마지막 빈 줄이 오기 전) 명세가 정한 동작은?
- 지금까지 모은 data 로 이벤트를 내보낸다
- 그 불완전한 이벤트는 내보내지 않고 버린다
- 빈 data 로 이벤트를 내보내 끊김을 알린다
- 다음 연결에서 이어 붙여 하나의 이벤트로 만든다
되돌림 창을 벗어난 `Last-Event-ID` 를 받은 서버가 '남아 있는 것만' 보내면?
- 클라이언트가 중복을 걸러 내므로 문제가 없다
- 브라우저가 스트림을 오류로 끊는다
- 가운데가 비는데 그 사실을 아무도 모른다
- 같은 이벤트가 두 번 도착한다
브라우저가 재접속하면서 `Last-Event-ID` 헤더를 **싣지 않는** 경우는?
- 이전 연결에서 이벤트를 하나도 못 받았을 때
- 마지막 id 문자열이 빈 문자열일 때
- 서버가 retry 를 보내지 않았을 때
- 재접속이 첫 시도일 때