Web/HTTP

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

 

 

๐Ÿ“’ URI (Resource Identifier)

๋ง๊ทธ๋Œ€๋กœ ์ž์›์„ ์‹๋ณ„ํ•˜๋Š” ๊ตฌ๋ณ„์ž.

Uniform: ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ํ†ต์ผ๋œ ๋ฐฉ์‹.

Resource: ์ž์›, URI๋กœ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ(์ œํ•œ ์—†์Œ)

Identifier: ๋‹ค๋ฅธ ํ•ญ๋ชฉ๊ณผ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ •๋ณด

๐Ÿ“Œ URL (Resource Locator)

* ๋ฆฌ์†Œ์Šค์˜ ์ฃผ์†Œ.๋กœ์„œ ์œ„์น˜๋ฅผ ์ง€์ •.

* ์œ„์น˜๋Š” ๋ณ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋ฆ„์€ ๋ณ€ํ•˜์ง€ ์•Š์Œ.

* ๊ตฌ์กฐ:

scheme://[userinfo@]host[:post][/path][?query][#fragment]

- scheme: ์ฃผ๋กœ ํ”„๋กœํ† ์ฝœ ์‚ฌ์šฉํ•˜๊ณ , (https) ํฌํŠธ๋Š” ์ƒ๋žต ๊ฐ€๋Šฅ.

- userinfo: URL์— ์‚ฌ์šฉ์ž์ •๋ณด๋ฅผ ํฌํ•จํ•ด์„œ ์ธ์ฆํ•ด์•ผ ํ•  ๋•Œ ์“ฐ๋Š”๋ฐ ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ.

-port: ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ๋žต. http๋Š” 80, https๋Š” 443

- path: ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ. ํด๋” ๊ตฌ์กฐ์ฒ˜๋Ÿผ ๊ณ„์ธต์  ๊ตฌ์กฐ.

- query: 'key=value' ํ˜•ํƒœ๋กœ์„œ '?'๋กœ ์‹œ์ž‘ํ•˜๊ณ  '&'๋กœ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ. (keyA=valueA&keyB=valueB) ์ผ๋ฐ˜์ ์œผ๋กœ query parameter ๋˜๋Š” query string์œผ๋กœ ๋ถˆ๋ฆผ.

- fragment: html ๋‚ด๋ถ€ ๋ถ๋งˆํฌ ๋“ฑ์—์„œ ์‚ฌ์šฉํ•˜๊ณ , ์„œ๋ฒ„์— ์ „์†กํ•˜๋Š” ์ •๋ณด๋Š” ์•„๋‹˜.

๐Ÿ“Œ URN (Resource Name)

๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„. ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ.

URN ์ด๋ฆ„๋งŒ์œผ๋กœ ์‹ค์ œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๋ณดํŽธํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Œ.

 

๐Ÿ“’ ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ๋ฆ„

๐Ÿ“ŒHTTP ์š”์ฒญ ๋ฉ”์„ธ์ง€๋Š” ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋‚˜?

GET/search?q=hello&hl=ko HTTP/1.1
Host: www.google.com

๐Ÿ“ŒHTTP ์š”์ฒญ ๋ฉ”์„ธ์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ์ „์†กํ•˜๋‚˜?

1. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTTP ๋ฉ”์„ธ์ง€ ์ƒ์„ฑ

2. SOCKET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ. IP, PORT ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์„œ๋ฒ„์™€ TCP/IP ์—ฐ๊ฒฐ.

3. TCP/IP ํŒจํ‚ท ์ƒ์„ฑ, HTTP ๋ฉ”์„ธ์ง€ ํฌํ•จ.

 

๊ทธ๋Ÿผ ๊ทธ๊ฑธ ๋ฐ›์€ ์„œ๋ฒ„๋„ ์‘๋‹ต ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด์•ผ๊ฒ ์ฃต. ๊ณผ์ •์€ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค.

TCP/IP ํŒจํ‚ท ์”Œ์šด ์‘๋‹ต ํŒจํ‚ท ์ƒ์„ฑํ•ด์„œ ์›น ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ „๋‹ฌ!

๐Ÿ“ŒHTTP ์‘๋‹ต ๋ฉ”์„ธ์ง€๋Š” ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋‚˜?

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3422

<html>
  <body></boey>
</html>