๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Dev Blog
CS/Network

[HTTP] - URI์™€ ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ๋ฆ„

by ์œ ์ง„์˜ 2022. 8. 3.
์ธํ”„๋Ÿฐ ๊ฐ•์˜ ์ค‘ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹์ด๋ผ๋Š” ๊ฐ•์˜์— ๋Œ€ํ•œ TIL์ž…๋‹ˆ๋‹ค.

 

URI์™€ ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ๋ฆ„

  • URI
  • ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ๋ฆ„

 

1. URI

URI๋ž€ Uniform Resource Identifier์˜ ์•ฝ์ž๋กœ ์ธํ„ฐ๋„ท ์ƒ์˜ ์ž์›์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์ผ๋œ ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค. URI๋Š” URL๊ณผ URN์˜ ํŠน์„ฑ์„ ๋ชจ๋‘ ๊ฐ–๋Š”๋‹ค. URL์€ Locator, ์ฆ‰ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ง€์ •ํ•œ ๊ฒƒ์ด๊ณ , URN์€ Name, ์ฆ‰ ๋ฆฌ์†Œ์Šค์— ์ด๋ฆ„์„ ๋ถ€์—ฌํ•œ ๊ฒƒ์ด๋‹ค. URL์€ ๋ณดํŽธํ™”๋˜์–ด์žˆ์ง€๋งŒ URN์€ ๋ณดํŽธํ™”๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— URI๋ฅผ URL๊ณผ ๊ฐ™์€ ์˜๋ฏธ๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

 

URL์„ ์„ค๊ณ„ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ๋ฌธ๋ฒ•์ด ์กด์žฌํ•˜๋Š”๋ฐ ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

scheme://[userinfo@]host[:port][/path][?query][#fragment]
์˜ˆ์‹œ) https://www.google.com:443/search?q=hello&hl=ko

 

scheme

์ฃผ๋กœ http๋‚˜ https ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์ด ์‚ฌ์šฉ๋œ๋‹ค. http๋Š” 80๋ฒˆ ํฌํŠธ, https๋Š” 443๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋”ฐ๋ผ์„œ port ๋ถ€๋ถ„์„ ์ƒ๋žตํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.

 

host

ํ˜ธ์ŠคํŠธ๋ช…์„ ์˜๋ฏธํ•œ๋‹ค. ๋„๋ฉ”์ธ๋ช…์ด๋‚˜ IP์ฃผ์†Œ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

path

๋ฆฌ์†Œ์Šค์˜ ๊ฒฝ๋กœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ฒฝ๋กœ๋Š” ๊ณ„์ธต์  ๊ตฌ์กฐ๋ฅผ ๋ค๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, /home/file1.jpg, /items/iphone13 ๊ฐ™์ด ๊ณ„์ธต์ ์œผ๋กœ ๊ฒฝ๋กœ๋ฅผ ์„ค๊ณ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

 

query

?๋กœ ์‹œ์ž‘ํ•ด์„œ &๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ์ฟผ๋ฆฌ๋“ค์€ key=value ํ˜•ํƒœ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค. query parameter, query string์œผ๋กœ ๋ถˆ๋ฆฐ๋‹ค. ์›น์„œ๋ฒ„๋งˆ๋‹ค ์ œ๊ณต๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

fragment

html ๋‚ด๋ถ€ ๋ถ๋งˆํฌ์— ์‚ฌ์šฉ๋œ๋‹ค. ์ด๋Ÿฌํ•œ fragment๋Š” ์„œ๋ฒ„์— ์ „์†กํ•˜๋Š” ์ •๋ณด๋Š” ์•„๋‹ˆ๋‹ค.

 

2. ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ๋ฆ„

์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์•„๋ž˜ ์˜์˜ URL๋กœ ๊ตฌ๊ธ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์ƒํ™ฉ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

https://www.google.com/search?q=hello&hl=ko

 

์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๊ตฌ๊ธ€ ์„œ๋ฒ„์— ๋ณด๋‚ผ HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋ฉ”์‹œ์ง€๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

์ถœ์ฒ˜) https://www.inflearn.com/course/http-์›น-๋„คํŠธ์›Œํฌ ๊ฐ•์˜์ž๋ฃŒ

 

Socket ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ TCP/IP ํ”„๋กœํ† ์ฝœ ๊ณ„์ธต(OS ๊ณ„์ธต)๊ณผ ์—ฐ๊ฒฐํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋‹น ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค. TCP/IP ํ”„๋กœํ† ์ฝœ์€ TCP/IP ํŒจํ‚ท์„ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์ด๋•Œ ๋ชฉ์ ์ง€์˜ IP, ํฌํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋ชฉ์ ์ง€ IP ์ฃผ์†Œ๋Š” Host์˜ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ์–ป์„ ์ˆ˜ ์žˆ๊ณ  ํฌํŠธ ๋ฒˆํ˜ธ๋Š” http๋Š” 80๋ฒˆ ํฌํŠธ, https๋Š” 443๋ฒˆ ํฌํŠธ์ธ ๊ฒƒ์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์€ TCP/IP ํŒจํ‚ท์ด ์ƒ์„ฑ๋œ๋‹ค.

 

์ถœ์ฒ˜) https://www.inflearn.com/course/http-์›น-๋„คํŠธ์›Œํฌ ๊ฐ•์˜์ž๋ฃŒ

 

ํ•ด๋‹น ํŒจํ‚ท์ด ๊ตฌ๊ธ€ ์„œ๋ฒ„์— ๋„์ฐฉํ•˜๋ฉด ์„œ๋ฒ„์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•ด์„œ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ๋‹ค์‹œ ๋ณด๋‚ธ๋‹ค. 

 

์ถœ์ฒ˜) https://www.inflearn.com/course/http-์›น-๋„คํŠธ์›Œํฌ ๊ฐ•์˜์ž๋ฃŒ

 

์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์‘๋‹ต ํŒจํ‚ท์ด ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋„์ฐฉํ•˜๋ฉด ์‘๋‹ต ํŒจํ‚ท ์•ˆ์˜ HTML์„ ๋ Œ๋”๋ง ํ•ด์„œ ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๊ฒŒ ๋œ๋‹ค.

๋Œ“๊ธ€