Jieunny์˜ ๋ธ”๋กœ๊ทธ

S2) Unit 7. [HTTP/๋„คํŠธ์›Œํฌ] ๋ธŒ๋ผ์šฐ์ €์˜ ์ž‘๋™ ์›๋ฆฌ(๋ณด์ด์ง€ ์•Š๋Š” ๊ณณ) ๋ณธ๋ฌธ

CodeStates/learning contents

S2) Unit 7. [HTTP/๋„คํŠธ์›Œํฌ] ๋ธŒ๋ผ์šฐ์ €์˜ ์ž‘๋™ ์›๋ฆฌ(๋ณด์ด์ง€ ์•Š๋Š” ๊ณณ)

Jieunny 2023. 1. 30. 14:00

๐Ÿ“ฃ  Client Server Architecture (2-tier Architecture)

โœ”๏ธ Client Server Architecture(2-tier Architecture) : ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ณณ๊ณผ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์„ ๋ถ„๋ฆฌ์‹œํ‚จ ๊ฒƒ

โœ”๏ธ ํด๋ผ์ด์–ธํŠธ : ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ

โœ”๏ธ ์„œ๋ฒ„ : ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณณ

โœ”๏ธ ํด๋ผ์ด์–ธํŠธ <-> ์„œ๋ฒ„ : ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ด€๊ณ„

โœ”๏ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ๋ฆฌ์†Œ์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ„๋„์˜ ๊ณต๊ฐ„

โœ”๏ธ 3-tier Architecture : 2-tier Architecture + ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

 

๐Ÿ“ฃ  ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ํ†ต์‹ 

โœ”๏ธ ์š”์ฒญ๊ณผ ์‘๋‹ต์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์š”์ฒญ์ด ์žˆ์–ด์•ผ ์‘๋‹ต์ด ์˜จ๋‹ค.

โœ”๏ธ ํ”„๋กœํ† ์ฝœ(ํ†ต์‹ ๊ทœ์•ฝ) : ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ์‹

โœ”๏ธ API(Application Programming Interface) : ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

โœ”๏ธ ์„œ๋ฒ„๋Š” ๋ฆฌ์†Œ์Šค ์ „๋‹ฌ์„ ์œ„ํ•œ ๋ฉ”๋‰ดํŒ, API ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ”๏ธ ๋ณดํ†ต ์ธํ„ฐ๋„ท์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ์—๋Š” HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ฃผ์†Œ(URL, URI)๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ”๏ธ HTTP ์š”์ฒญ์—๋Š” ๋ฉ”์„œ๋“œ๋ผ๋Š” ๊ฒƒ์ด ์กด์žฌํ•˜๋ฉฐ, CRUD๊ฐ๊ฐ ๋ฉ”์„œ๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

Read GET
Create POST
Update PUT or PATCH
Delete DELETE

๐Ÿ“ฃ  URL๊ณผ URI (URL URI)

โœ”๏ธ URL (Uniform Resource Locator) : ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์›น ํŽ˜์ด์ง€, ์ด๋ฏธ์ง€, ๋™์˜์ƒ ๋“ฑ์˜ ํŒŒ์ผ์ด ์œ„์น˜ํ•œ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

โžฐ scheme, hosts, url-path๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

โžฐ scheme : ํ†ต์‹  ๋ฐฉ์‹(ํ”„๋กœํ† ์ฝœ)์„ ๊ฒฐ์ •ํ•œ๋‹ค. -> ์ผ๋ฐ˜์ ์ธ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” http(s)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

โžฐ hosts : ์›น ์„œ๋ฒ„์˜ ์ด๋ฆ„์ด๋‚˜ ๋„๋ฉ”์ธ, IP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

โžฐ url-path : ์›น ์„œ๋ฒ„์—์„œ ์ง€์ •ํ•œ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์›นํŽ˜์ด์ง€, ์ด๋ฏธ์ง€, ๋™์˜์ƒ ๋“ฑ์ด ์œ„์น˜ํ•œ ๊ฒฝ๋กœ์™€ ํŒŒ์ผ๋ช…์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

:sheme  :hosts:           :url-path:  :query:
httl:// www.google.com:80 /search     ?q=JavaScript

 

โœ”๏ธ URI (Uniform Resource Identifier) : URL์˜ ๊ธฐ๋ณธ ์š”์†Œ 3๊ฐ€์ง€์— query, fragment๋ฅผ ํฌํ•จํ•œ๋‹ค.

โžฐ query : ์›น ์„œ๋ฒ„์— ๋ณด๋‚ด๋Š” ์ถ”๊ฐ€์ ์ธ ์งˆ๋ฌธ์ด๋‹ค.

โžฐ fragment : ์ผ์ข…์˜ ๋ถ๋งˆํฌ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, URL์— fragment(#)์™€ ํŠน์ • HTML ์š”์†Œ์˜ id๋ฅผ ์ „๋‹นํ•˜๋ฉด ํ•ด๋‹น ์š”์†Œ๊ฐ€ ์žˆ๋Š” ๊ณณ์œผ๋กœ ์Šคํฌ๋กค์„ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

โžฐ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฒ€์ƒ‰์ฐฝ์„ ํด๋ฆญํ•˜๋ฉด ๋‚˜ํƒ€๋‚˜๋Š” ์ฃผ์†Œ๊ฐ€ URI์ด๋‹ค.

โžฐ 127.0.0.1 : ๋กœ์ปฌ PC

โžฐ port : ์„œ๋ฒ„๋กœ ์ง„์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต๋กœ


๐Ÿ“ฃ  IP์™€ ํฌํŠธ

โœ”๏ธ IP ์ฃผ์†Œ(Internet Protocol ์ฃผ์†Œ) : ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ํŠน์ • PC์˜ ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ฒด๊ณ„

โžฐ IPv4 : ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  PC๋Š” IP ์ฃผ์†Œ์ฒด๊ณ„๋ฅผ ๋”ฐ๋ผ ๋„ค ๋ฉ์ด์˜ ์ˆซ์ž๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

โžฐ IPv4๋Š” ๊ฐ ๋ฉ์–ด๋ฆฌ๋งˆ๋‹ค 0๋ถ€ํ„ฐ 255๊นŒ์ง€ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

โžฐ localhost or 127.0.0.1 : ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ๋กœ์ปฌ PC๋ฅผ ์ง€์นญํ•œ๋‹ค.

โžฐ 0.0.0.0 or 255.255.255.255 : broadcast address๋กœ, ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ์ ‘์†๋œ ๋ชจ๋“  ์žฅ์น˜์™€ ์†Œํ†ตํ•˜๋Š” ์ฃผ์†Œ์ด๋‹ค.

-> ์„œ๋ฒ„์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ IP์ฃผ์†Œ๋ฅผ broadcast address๋กœ ์ง€์ •ํ•˜๋ฉด, ๋ชจ๋“  ๊ธฐ๊ธฐ์—์„œ ์„œ๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

โžฐ ๊ฐœ์ธ PC์˜ ๋ณด๊ธ‰์œผ๋กœ IPv4๋กœ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” PC๊ฐ€ ํ•œ๊ณ„๋ฅผ ๋„˜์—ˆ๊ณ , ์ด๋ฅผ ์œ„ํ•ด IPv6๊ฐ€ ๋‚˜์™”๋‹ค.

 

โœ”๏ธ Port(ํฌํŠธ) : IP์ฃผ์†Œ์— ์ง„์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ์ •ํ•ด์ง„ ํ†ต๋กœ

โžฐ ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ธ ํฌํŠธ๋Š” ์ค‘๋ณตํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

โžฐ 0๋ถ€ํ„ฐ 65535๊นŒ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

โžฐ 0๋ถ€ํ„ฐ 1024๋ฒˆ ๊นŒ์ง€์˜ ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ์ฃผ์š” ํ†ต์‹ ์„ ์œ„ํ•œ ๊ทœ์•ฝ์— ๋”ฐ๋ผ ์ด๋ฏธ ์ •ํ•ด์ ธ ์žˆ๋‹ค.

โžฐ 22: SSH / 80: HTTP / 443: HTTPS

โžฐ ์ด๋ฏธ ์ •ํ•ด์ง„ ํฌํŠธ ๋ฒˆํ˜ธ๋ผ๋„ ํ•„์š”์— ๋”ฐ๋ผ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

โžฐ ์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ ๋ฒˆํ˜ธ๋Š” URI์— ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ(3000๊ณผ ๊ฐ™์€ ์ž„์‹œ ํฌํŠธ)๋Š” ๋ฐ˜๋“œ์‹œ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค.


๐Ÿ“ฃ  ๋„๋ฉ”์ธ๊ณผ DNS

โœ”๏ธ Domain name : IP ์ฃผ์†Œ๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ

โžฐ IP์ฃผ์†Œ๋Š” 3.34.153.168

โžฐ ๋„๋ฉ”์ธ ์ด๋ฆ„์€ codestates.com

โžฐ ์ฃผ์†Œ์ฐฝ์— IP์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด codestates.com์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โœ”๏ธ DNS(Domain Name System) : ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ ๋งค์นญ๋œ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜๋Š” ์ž‘์—…์„ ์œ„ํ•œ ์„œ๋ฒ„

โžฐ ํ˜ธ์ŠคํŠธ์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ๋ฐœ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ

โžฐ ๋งŒ์•ฝ ๋ธŒ๋ผ์šฐ์ €์— naver.com์„ ๊ฒ€์ƒ‰ -> DNS์—์„œ IP์ฃผ์†Œ๋ฅผ ์ฐพ๊ณ  ์ด IP์ฃผ์†Œ์— ํ•ด๋‹นํ•˜๋Š” ์›น ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ์ „๋‹ฌ -> ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹  ๊ฐ€๋Šฅ


๐Ÿ“ฃ  ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ € ์—๋Ÿฌ ์ฝ๊ธฐ

โœ”๏ธ Aw. Snap! (์•—, ์ด๋Ÿฐ!)

โžฐ ์›นํŽ˜์ด์ง€ ๋Œ€์‹  ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ ํŽ˜์ด์ง€ ๋˜๋Š” ๋‹ค๋ฅธ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค๋ฉด, ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ

โžฐ ํฌ๋กฌ์—์„œ chrome://network-errors/ ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

โžฐ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋‚˜๋ฉด ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

    โžฐ ์›นํŽ˜์ด์ง€์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค

    โžฐ ์›นํŽ˜์ด์ง€๊ฐ€ ์—ด๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.

    โžฐ HTTPS๊ฐ€ ์ ์šฉ๋œ ์›นํŽ˜์ด์ง€๊ฐ€ ์—ด๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.

    โžฐ ์‚ฌ์ง„์ด ๋กœ๋“œ๋˜์ง€ ์•Š๋Š”๋‹ค.

    โžฐ ์ƒˆ ํƒญ์ด ๋กœ๋“œ๋˜์ง€ ์•Š๋Š”๋‹ค.