Notice
Recent Posts
Recent Comments
Link
ยซ   2024/09   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

BUILD_SSO

[Network/๋„คํŠธ์›Œํฌ] CORS, Frame/Packet/Segment/Datagram ๋ณธ๋ฌธ

Tech Interview

[Network/๋„คํŠธ์›Œํฌ] CORS, Frame/Packet/Segment/Datagram

sohyeonnn 2023. 4. 19. 17:50

๐Ÿ‘‰๐ŸปCORS(Cross Origin Resource Sharing)๋ž€

  • CORS(Cross-Origin Resource Sharing)๋Š” ๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ ๋กœ ์ถœ์ฒ˜๊ฐ€ ๋‹ค๋ฅธ ์ž์›๋“ค์„ ๊ณต์œ ํ•œ๋‹ค๋Š” ๋œป์ด๋ฉฐ, ํ•œ ์ถœ์ฒ˜์— ์žˆ๋Š” ์ž์›์—์„œ ๋‹ค๋ฅธ ์ถœ์ฒ˜์— ์žˆ๋Š” ์ž์›์— ์ ‘๊ทผํ•˜๋„๋ก ํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค.
  • ๋™์ž‘์›๋ฆฌ:
    ์ถ”๊ฐ€ HTTP ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ํ•œ ์ถœ์ฒ˜์—์„œ ์‹คํ–‰ ์ค‘์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ์„ ํƒํ•œ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋„๋ก ๋ธŒ๋ผ์šฐ์ €์— ์•Œ๋ ค์ฃผ๋Š” ์ฒด์ œ์ž…๋‹ˆ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ž์‹ ์˜ ์ถœ์ฒ˜(๋„๋ฉ”์ธ, ํ”„๋กœํ† ์ฝœ, ํฌํŠธ)์™€ ๋‹ค๋ฅผ ๋•Œ ๊ต์ฐจ ์ถœ์ฒ˜ HTTP ์š”์ฒญ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณผ์ •:
    1. ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ํ•œ๋‹ค.
    2. ์„œ๋ฒ„์˜ ์‘๋‹ต์ด ์™”์„๋•Œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญํ•œ Origin๊ณผ ์‘๋‹นํ•œ Access-Control-Request-Header์˜ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์œ ํšจํ•œ ์š”์ฒญ์ด๋ผ๋ฉด ๋ฆฌ์†Œ์Šค๋ฅผ ์‘๋‹ตํ•˜๊ณ , ์œ ํšจํ•˜์ง€ ์•Š์€ ์š”์ฒญ์ด๋ผ๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ง‰๊ณ  ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒํ•œ๋‹ค.

๐Ÿ‘‰๐ŸปSocket.io์™€ WebSocket์˜ ์ฐจ์ด

Socket.io

  • ํ‘œ์ค€ ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๋ฉฐ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ์†Œ์ผ“ ์—ฐ๊ฒฐ ์‹คํŒจ ์‹œ fallback์„ ํ†ตํ•ด ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์•Œ์•„์„œ ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ์™€ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•จ
  • ๋ฐฉ ๊ฐœ๋…์„ ์ด์šฉํ•ด ์ผ๋ถ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…์ด ๊ฐ€๋Šฅํ•จ

WebSocket

  • HTML5 ์›น ํ‘œ์ค€ ๊ธฐ์ˆ 
  • ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋ฉฐ ํ†ต์‹ ํ•  ๋•Œ ์•„์ฃผ ์ ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•จ
  • ์ด๋ฒคํŠธ๋ฅผ ๋‹จ์ˆœํžˆ ๋“ฃ๊ณ , ๋ณด๋‚ด๋Š” ๊ฒƒ๋งŒ ๊ฐ€๋Šฅํ•จ

 Web Socket๊ณผ ๋‹ฌ๋ฆฌ Socket.io๋Š” ํ‘œ์ค€ ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๊ณ  Node.js ๋ชจ๋“ˆ์ด์ž ์˜คํ”ˆ์†Œ์Šค์ด๋‹ค.


๐Ÿ‘‰๐ŸปFrame, Packet, Segment, Datagram

1 frame = 1 packet = 1 segment
๊ฐ ๋‹ค๋ฅธ OSI ๊ณ„์ธต์—์„œ ๋‹ค๋ฅธ ์ •๋ณด๋กœ encapsulation ๋˜์–ด์žˆ๋‹ค.

์ฆ‰, payload ๋ถ€๋ถ„์€ ๋™์ผํ•˜๋‚˜, ์•ž์— ์–ด๋–ค ํ—ค๋” ์ •๋ณด๊นŒ์ง€ ํฌํ•จ๋˜์–ด ์žˆ๋ƒ ๋ผ๊ณ  ๋งํ• ์ˆ˜๋„ ์žˆ๊ณ  ์–ด๋–ค OSI๊ณ„์ธต์—์„œ ์บก์Šํ™” ๋œ ๊ฒƒ์ด๋ƒ์— ๋”ฐ๋ผ ๋ถ€๋ฅด๋ฏ„ ๋ช…์นญ์ด ๋‹ฌ๋ผ์ง„๋‹ค.

 

Segment

  • ์ „์†ก๊ณ„์ธต(Tranport Layer) ์—์„œ ๋ถ€๋ฅด๋Š” ๋ฐ์ดํ„ฐ ๋ช…์นญ
    ํ—ค๋” : ์†ก์‹ ์ง€ Port, ์ˆ˜์‹ ์ง€ Port

Packet

  • ๋„คํŠธ์›Œํฌ๊ณ„์ธต(Network Layer) ์—์„œ ๋ถ€๋ฅด๋Š” ๋ฐ์ดํ„ฐ ๋ช…์นญ
  • ํ—ค๋” : ์†ก์‹ ์ง€ IP, ์ˆ˜์‹ ์ง€ IP

Frame

  • ๋ฐ์ดํ„ฐ๋งํฌ๊ณ„์ธต(DataLink Layer) ์—์„œ ๋ถ€๋ฅด๋Š” ๋ฐ์ดํ„ฐ ๋ช…์นญ
    ํ—ค๋” : MAC ์ฃผ์†Œ
    ํ”„๋ ˆ์ž„ ํ—ค๋”๋Š” ์Šค์œ„์นญ ์˜์—ญ๊ณผ ๋ผ์šฐํŒ… ํ†ต์‹  ์˜์—ญ์— ์žˆ์„ ๋•Œ ๋‹ด๋Š” ์ •๋ณด๊ฐ€ ๋‹ค๋ฆ„
    LAN์— ์žˆ๋Š” ๊ฒฝ์šฐ MAC ์ฃผ์†Œ๊ฐ€ ์žˆ์ง€๋งŒ WAN ์˜์—ญ์ผ ๊ฒฝ์šฐ WAN ์˜์—ญ์— ๋Œ€ํ•œ ์ •๋ณด๋กœ ์ฑ„์›Œ์ง

Datagram

  • ์‚ฌ์šฉ์ž์˜ ์ˆœ์ˆ˜ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๋ถ€๋ฅด๋Š” ๋ง
Comments