๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐Ÿ“„ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ

1. TCP, HTTP, HTTPS, WebSocket์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”โ€‹

  1. TCP (์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ): TCP๋Š” ์ธํ„ฐ๋„ท์—์„œ ๋‘ ์ปดํ“จํ„ฐ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ๊ฒฐ ์ง€ํ–ฅ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํŒจํ‚ท์˜ ์ˆœ์„œ์™€ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๋ฉฐ, ์ด๋Š” ๋„คํŠธ์›Œํฌ ์ƒํƒœ์— ๊ด€๊ณ„์—†์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์™„์ „ํ•˜๊ฒŒ ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  2. HTTP (ํ•˜์ดํผํ…์ŠคํŠธ ์ „์†ก ํ”„๋กœํ† ์ฝœ): HTTP๋Š” ํ•˜์ดํผํ…์ŠคํŠธ(์ฆ‰, ์›น ํŽ˜์ด์ง€)๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. TCP ํ”„๋กœํ† ์ฝœ ์œ„์— ๊ตฌ์ถ•๋˜์–ด ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹  ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. HTTP๋Š” ๋ฌด์ƒํƒœ(stateless)์ด๋ฉฐ, ์ด๋Š” ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž์— ๊ด€ํ•œ ์–ด๋–ค ์ •๋ณด๋„ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  3. HTTPS (๋ณด์•ˆ ํ•˜์ดํผํ…์ŠคํŠธ ์ „์†ก ํ”„๋กœํ† ์ฝœ): HTTPS๋Š” HTTP์˜ ๋ณด์•ˆ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. SSL/TLS ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด HTTP ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๊ตํ™˜๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ณด์•ˆ์„ ๋ณดํ˜ธํ•˜๊ณ , ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋ฐ€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

  4. WebSocket: WebSocket ํ”„๋กœํ† ์ฝœ์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ์ง€์†์ ์ธ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋ฉฐ, ์—ฐ๊ฒฐ์ด ์„ค์ •๋œ ํ›„ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋งค ์ „์†ก๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ์ „ํ†ต์ ์ธ HTTP ์š”์ฒญ๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. WebSocket์€ ์ธ์Šคํ„ดํŠธ ๋ฉ”์‹œ์ง•๊ณผ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

2. Three Way Handshake๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?โ€‹

3๋ฐฉํ–ฅ ํ•ธ๋“œ์…ฐ์ดํฌ๋Š” TCP/IP ๋„คํŠธ์›Œํฌ์—์„œ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์„ธ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ์–‘์ธก์˜ ์ˆ˜์‹  ๋ฐ ์†ก์‹  ๋Šฅ๋ ฅ์ด ์ •์ƒ์ธ์ง€ ํ™•์ธํ•˜๊ณ , ์ดˆ๊ธฐ ์‹œํ€€์Šค ๋ฒˆํ˜ธ(ISN)๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ๋™๊ธฐํ™”์™€ ๋ณด์•ˆ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

TCP Message Typeโ€‹

๋‹จ๊ณ„๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์ „์—, ๊ฐ ์œ ํ˜•์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์–ด๋–ค ์ฃผ์š” ๊ธฐ๋Šฅ์„ ํ•˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MessageDescription
SYN์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•˜๊ณ  ์„ค์ •ํ•˜๋ฉฐ, ์žฅ์น˜ ๊ฐ„ ์‹œํ€€์Šค ๋ฒˆํ˜ธ ๋™๊ธฐํ™”์— ๋„์›€
ACK์ƒ๋Œ€๋ฐฉ์—๊ฒŒ SYN์„ ์ˆ˜์‹ ํ–ˆ์Œ์„ ํ™•์ธ
SYN-ACK๋™๊ธฐํ™” ํ™•์ธ, ์ž์‹ ์˜ SYN์„ ๋ณด๋‚ด๋ฉด์„œ ACK๋„ ์ „์†ก
FIN์—ฐ๊ฒฐ ์ข…๋ฃŒ

Stepsโ€‹

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•˜๊ณ  SYN ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด, ์„œ๋ฒ„์— ํ†ต์‹ ์„ ์‹œ์ž‘ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Œ๊ณผ ์ž์‹ ์ด ๋ณด๋‚ธ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.
  2. ์„œ๋ฒ„๊ฐ€ SYN ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•œ ํ›„, ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ต์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹ ํ•œ SYN ์‹œํ€€์Šค ๋ฒˆํ˜ธ์— +1์„ ํ•˜์—ฌ ACK๋กœ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋™์‹œ์— ์„œ๋ฒ„ ์ž์ฒด์˜ SYN ๋ฉ”์‹œ์ง€๋„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  3. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ํ™•์ธํ•˜๊ณ , ์–‘์ธก ๋ชจ๋‘ ์•ˆ์ •์ ์ธ ์—ฐ๊ฒฐ์ด ์„ค์ •๋˜์–ด ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

Exampleโ€‹

Host A๊ฐ€ ์„œ๋ฒ„์— TCP SYN ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ฉฐ, ์—ฌ๊ธฐ์—๋Š” ์ž„์˜์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” 1000์œผ๋กœ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

Host A ===(SYN=1000)===> Server

Server๋Š” Host A๊ฐ€ ๋ณด๋‚ธ ์‹œํ€€์Šค ๋ฒˆํ˜ธ์— ๋Œ€ํ•ด ์‘๋‹ตํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ์‹œํ€€์Šค ๋ฒˆํ˜ธ์— +1์„ ํ•˜๊ณ  ์ž์ฒด SYN๋„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

Host A <===(SYN=2000 ACK=1001)=== Server

Host A๊ฐ€ Server์˜ SYN์„ ์ˆ˜์‹ ํ•œ ํ›„, ํ™•์ธ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ๋ณด๋‚ด ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. Server๊ฐ€ ๋ณด๋‚ธ ์‹œํ€€์Šค ๋ฒˆํ˜ธ์— +1์„ ํ•ฉ๋‹ˆ๋‹ค.

Host A ===(ACK=2001)===> Server

2๋ฒˆ์˜ ํ•ธ๋“œ์…ฐ์ดํฌ๋งŒ์œผ๋กœ๋„ ๊ฐ€๋Šฅํ•œ๊ฐ€์š”?โ€‹

  1. 3๋ฐฉํ–ฅ ํ•ธ๋“œ์…ฐ์ดํฌ์˜ ๋ชฉ์ ์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์–‘์ธก์˜ ์†ก์ˆ˜์‹  ๋Šฅ๋ ฅ์ด ์ •์ƒ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 2๋ฒˆ์˜ ํ•ธ๋“œ์…ฐ์ดํฌ๋งŒ์œผ๋กœ๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ˆ˜์‹  ๋Šฅ๋ ฅ์„ ํŒ๋‹จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  2. ์„ธ ๋ฒˆ์งธ ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ์—†์œผ๋ฉด, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ํ™•์ธ์„ ๋ณด๋‚ผ ์ˆ˜๋„ ์—†์–ด, ๋ฐ์ดํ„ฐ์˜ ๋ณด์•ˆ์„ฑ์— ์˜๋ฌธ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์•ฝํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋„์ฐฉ ์‹œ๊ฐ„์— ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ ๊ตฌ ๋ฐ์ดํ„ฐ์˜ ๋„์ฐฉ ์ˆœ์„œ๊ฐ€ ๋’ค๋ฐ”๋€Œ๋ฉด, ์„ธ ๋ฒˆ์งธ ํ•ธ๋“œ์…ฐ์ดํฌ์˜ SYN ํ™•์ธ ์—†์ด ์—ฐ๊ฒฐ์ด ์„ค์ •๋˜๋ฉด ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ISN์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?โ€‹

ISN์€ Initial Sequence Number์˜ ์•ฝ์ž๋กœ, ์ˆ˜์‹  ์ธก์— ๋ฐœ์‹  ์ธก์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฌด์ž‘์œ„๋กœ ๋™์  ์ƒ์„ฑ๋˜๋Š” ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋กœ, ์ œ3์ž์˜ ์นจ์ž… ์‹œ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ์ถ”์ธกํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ์œ„์กฐํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

3๋ฐฉํ–ฅ ํ•ธ๋“œ์…ฐ์ดํฌ์—์„œ ๋ฐ์ดํ„ฐ ์ „์†ก์€ ์–ธ์ œ ์‹œ์ž‘๋˜๋‚˜์š”?โ€‹

์ฒซ ๋ฒˆ์งธ์™€ ๋‘ ๋ฒˆ์งธ ํ•ธ๋“œ์…ฐ์ดํฌ์˜ ๋ชฉ์ ์€ ์–‘์ธก์˜ ์†ก์ˆ˜์‹  ๋Šฅ๋ ฅ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ํ•ธ๋“œ์…ฐ์ดํฌ์—์„œ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด, ์•…์˜์ ์ธ ์ œ3์ž๊ฐ€ ๋Œ€๋Ÿ‰์˜ ๊ฐ€์งœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์บ์‹ฑ์— ์†Œ๋น„ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๊ณต๊ฒฉ์˜ ๊ธฐํšŒ๋ฅผ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ธ ๋ฒˆ์งธ ํ•ธ๋“œ์…ฐ์ดํฌ์—์„œ๋งŒ, ์–‘์ธก์ด ๋™๊ธฐํ™” ํ™•์ธ์„ ์™„๋ฃŒํ•˜๊ณ  ์—ฐ๊ฒฐ ์ƒํƒœ์— ์žˆ์œผ๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

Referenceโ€‹

3. HTTP ์บ์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”โ€‹

HTTP ์บ์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ HTTP ํ”„๋กœํ† ์ฝœ์—์„œ ์›น ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ ์ €์žฅ(๋˜๋Š” "์บ์‹œ")ํ•˜๋Š” ๊ธฐ์ˆ ๋กœ, ์„œ๋ฒ„ ๋ถ€๋‹ด์„ ์ค„์ด๊ณ  ์ง€์—ฐ์„ ๋‚ฎ์ถ”๋ฉฐ ์›น ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์†๋„๋ฅผ ๋†’์ด๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ์บ์‹ฑ ์ „๋žต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ๊ฐ•๋ ฅํ•œ ์บ์‹œ(Freshness): Expires ๋˜๋Š” Cache-Control: max-age ์‘๋‹ต ํ—ค๋”๋ฅผ ์„ค์ •ํ•˜์—ฌ, ํŠน์ • ์‹œ๊ฐ„ ๋‚ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ๊ฒ€์ฆ ์บ์‹œ(Validation): Last-Modified์™€ ETag ์‘๋‹ต ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์กฐ๊ฑด๋ถ€ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜์œผ๋ฉด 304(Not Modified) ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ๋กœ์ปฌ ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

  3. ํ˜‘์ƒ ์บ์‹œ(Negotiation): ์ด ๋ฐฉ์‹์€ Vary ์‘๋‹ต ํ—ค๋”์— ์˜์กดํ•˜๋ฉฐ, ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ(์˜ˆ: Accept-Language)์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ์บ์‹œ ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ณตํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

  4. ์บ์‹œ ์•ˆ ํ•จ(No-store): Cache-Control: no-store๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋ฉฐ, ๋งค๋ฒˆ ์š”์ฒญ ์‹œ ์„œ๋ฒ„์—์„œ ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์บ์‹ฑ ์ „๋žต์˜ ์„ ํƒ์€ ๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ์—…๋ฐ์ดํŠธ ๋นˆ๋„ ๋“ฑ์˜ ์š”์†Œ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋˜๋ฉฐ, ํšจ๊ณผ์ ์ธ ์บ์‹ฑ ์ „๋žต์€ ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Service Workerโ€‹

๊ฐœ์ธ์ ์ธ ๊ฒฝํ—˜์œผ๋กœ, Web App์— PWA๋ฅผ ์„ค์ •ํ•œ ํ›„, ๊ธฐ๋ณธ ์Šคํƒ€์ผ์ด๋‚˜ ๋กœ๊ณ , ์‹ฌ์ง€์–ด ์˜คํ”„๋ผ์ธ์šฉ offline.html์„ service-worker.js์— ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ณ ๊ฐ์ด ์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ๋„, ์ด ์บ์‹œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ํ˜„์žฌ ์›น์‚ฌ์ดํŠธ๋‚˜ ๋„คํŠธ์›Œํฌ ์ƒํƒœ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ผ์ • ์ˆ˜์ค€์˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.