๐Ÿ“Œ ๊น€์˜ํ•œ ๋‹˜์˜ "๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹" ๊ฐ•์˜ ๋“ฃ๊ณ  ์ •๋ฆฌ

 

๐Ÿ“URI (Uniform Resource Identifier)

 

* URI? URL? URN? ๋งŽ์ด ๋ฌถ์—ฌ์„œ ๋ณด์ด๋Š” ๋‹จ์–ด 3๊ฐ€์ง€

  • URI : ์ž์›์„ ์‹๋ณ„ํ•˜๋Š” ์‹๋ณ„์ž. URI๋Š” locater(URL), Name(URN) ๋˜๋Š” ๋‘˜๋‹ค ์ถ”๊ฐ€๋กœ ๋ถ„๋ฅ˜ ๋  ์ˆ˜ ์žˆ๋‹ค. 
  • URL : ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜ ์ง€์ •, ๊ฐ€๋ณ€์„ฑ ๆœ‰
  • URN : ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„ ๋ถ€์—ฌ, ๊ฐ€๋ณ€์„ฑ ็„ก, ์ด๋ฆ„๋งŒ์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์ด ๋ณดํŽธํ™” ๋˜์žˆ์ง€ ์•Š๋‹ค. 

๊น€์˜ํ•œ๋‹˜ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ http ์›น ๊ธฐ๋ณธ ์ง€์‹ ๊ฐ•์˜ ์ž๋ฃŒ ์ค‘

URL(์œ„)๊ณผ URN(์•„๋ž˜)์˜ ์˜ˆ์‹œ

https://www.ietf.org/rfc/rfc3986

 

* URI์˜ ๋œป

  • Uniform : ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ํ†ต์ผ๋œ ๋ฐฉ์‹
  • Resource : ์ž์›, URI๋กœ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ (์ž์›์— ์ œํ•œ ์—†์Œ)
  • Identifier : ๋‹ค๋ฅธ ํ•ญ๋ชฉ๊ณผ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ •๋ณด

* URL 

scheme:// [userinfo@] host [:port] [/path] [?query] [#fragment]
https://   www.google.com :443 /search q=hello&hl=ko  
ํ”„๋กœํ† ์ฝœ   ํ˜ธ์ŠคํŠธ๋ช… ํฌํŠธ๋ฒˆํ˜ธ ํŒจ์Šค ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ  

- scheme (์Šคํ‚ค๋งˆ)

    scheme์—” ์ฃผ๋กœ ํ”„๋กœํ† ์ฝœ ์‚ฌ์šฉ

    ํ”„๋กœํ† ์ฝœ : ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ž์›์— ์ ‘๊ทผํ•  ๊ฒƒ์ธ๊ฐ€ ์•ฝ์†ํ•œ ๊ทœ์น™ 

- userinfo@

    URL์— ์‚ฌ์šฉ์ž์ •๋ณด๋ฅผ ํฌํ•จ์— ์ธ์ฆํ•˜์ง€๋งŒ ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

- host

    ํ˜ธ์ŠคํŠธ๋ช…์—๋Š” ๋„๋ฉ”์ธ๋ช… ๋˜๋Š” IP์ฃผ์†Œ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค 

- port

    ์ ‘์† ํฌํŠธ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ๋žต๋˜๋ฉฐ, ์ƒ๋žต์‹œ http๋Š” 80, https๋Š” 443 ์ด ์ƒ๋žต๋œ๋‹ค. 

- path

    ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ๋กœ ๊ณ„์ธต๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. 

- query

    key=value ํ˜•ํƒœ๋กœ ?๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ &์œผ๋กœ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

    query parameter, query string(๋ฌธ์ž๋กœ๋งŒ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ) ์œผ๋กœ๋„ ๋ถˆ๋ฆฐ๋‹ค.

- fragment

    html ๋‚ด๋ถ€ ๋ถ๋งˆํฌ ๋“ฑ์— ์‚ฌ์šฉํ•˜๋ฉฐ ์„œ๋ฒ„์— ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š” ๋‚ด์šฉ

 

 

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

1. ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ URL๋ฅผ ์ „์†ก

2. DNS์—์„œ ๋„๋ฉ”์ธ ๋ช…์„ ์งˆ์˜ํ•˜์—ฌ IP๋ฅผ ์ฐพ์•„์˜จ๋‹ค ๊ทธ๋ฆฌ๊ณ  ํฌํŠธ ์ •๋ณด ๊นŒ์ง€ ์ฐพ๋Š”๋‹ค.

3. HTTP ์š”์ฒญ ๋ฉ”์„ธ์ง€ ์ƒ์„ฑ

 

* HTTP ์š”์ฒญ ๋ฉ”์„ธ์ง€ ์˜ˆ์‹œ

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

 

* HTTP ๋ฉ”์‹œ์ง€ ์ „์†ก

๊น€์˜ํ•œ๋‹˜ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ http ์›น ๊ธฐ๋ณธ ์ง€์‹ ๊ฐ•์˜ ์ž๋ฃŒ ์ค‘

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

2. SOCKET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•˜๋Š”๋ฐ IP์™€ ํฌํŠธ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  TCP์˜ 3 way handshake๋ฅผ ํ†ตํ•ด ์ ‘์†ํ•˜๋ ค๋Š” ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ

4. IP์™€ Port ์ •๋ณด๊ฐ€ ์žˆ๋Š” TCP/IP ํŒจํ‚ท์„ ์”Œ์šด๋‹ค.

5. ๊ทธ๋ฆฌ๊ณ  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต์„ ์ง€๋‚˜ ์ธํ„ฐ๋„ท ๋ง์œผ๋กœ ๋‚˜๊ฐ„๋‹ค. ์ˆ˜๋งŽ์€ ๋…ธ๋“œ๋ฅผ ๊ฑฐ์ณ ๋ชฉ์ ์ง€์— ๋„์ฐฉ

6. ์š”์ฒญ ํŒจํ‚ท์—์„œ TCP/IP ํŒจํ‚ท์„ ๋ฒ—๊ฒจ๋‚ด์–ด ์•ˆ์˜ ๋‚ด์šฉ์„ ํ•ด์„ํ•˜๊ณ  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. 

7. ์„œ๋ฒ„์—์„œ๋Š” ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ ๋‹ค.

8. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ–ˆ๋˜๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 2~5 ๊ณผ์ •์„ ๊ฑฐ์ณ ํด๋ผ์ด์–ธํŠธ์— ํŒจํ‚ท์ด ๋„์ฐฉ

9. ํŒจํ‚ท์„ ๋ฒ—๊ฒจ๋‚ด์–ด ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด์„ํ•ด ํ•„์š” ์‘๋‹ต ๊ฐ’์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. 

+ Recent posts