MapleStory Finger Point

โšช ์šฉ์–ด ์ •๋ฆฌ

HTTP (Hypertext Transfer Protocol) ๊ฐœ๋…

HYEJU01 2025. 1. 3. 00:51
 

๋ชฉ์ฐจ

 

     

     

     



    HTTP ๋ž€? 

    HTTP๋Š” HTML ๋ฌธ์„œ์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋“ค์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ  (ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ํ”„๋กœํ† ์ฝœ)

     

     

    * ํ”„๋ก์‹œ :  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ๋“ค์„ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ถ€๋ฅด๋Š” ๋ง, ํ•˜๋‹จ์˜ ๊ธฐ๋Šฅ๋“ค์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ์บ์‹ฑ (์บ์‹œ๋Š” ๊ณต๊ฐœ ๋˜๋Š” ๋น„๊ณต๊ฐœ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ: ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ))
    • ํ•„ํ„ฐ๋ง (๋ฐ”์ด๋Ÿฌ์Šค ๋ฐฑ์‹  ์Šค์บ”, ์œ ํ•ด ์ปจํ…์ธ  ์ฐจ๋‹จ(์ž๋…€ ๋ณดํ˜ธ) ๊ธฐ๋Šฅ)
    • ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ (์—ฌ๋Ÿฌ ์„œ๋ฒ„๋“ค์ด ์„œ๋กœ ๋‹ค๋ฅธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ—ˆ์šฉ)
    • ์ธ์ฆ (๋‹ค์–‘ํ•œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ œ์–ด)
    • ๋กœ๊น… (์ด๋ ฅ ์ •๋ณด๋ฅผ ์ €์žฅ)

     

    HTTP ํŠน์ง•

     

    • ๋ฌด์ƒํƒœ(Stateless) : HTTP๋Š” ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ณ ,๊ฐ๊ฐ์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต์ด ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋จ, ์„œ๋ฒ„๋Š” ์š”์ฒญ ๊ฐ„์˜ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํšจ์œจ์ ์ด์ง€๋งŒ, ์ƒํƒœ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์ฟ ํ‚ค, ์„ธ์…˜ ๋˜๋Š” ํ† ํฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ชจ๋ธ : ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญ(Request)์„ ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„๋Š” ์‘๋‹ต(Response)์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ : ์š”์ฒญ๊ณผ ์‘๋‹ต ๋ฉ”์‹œ์ง€๊ฐ€ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.
    • ํ™•์žฅ์„ฑ : ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ(์ธ์ฆ, ๋ฐ์ดํ„ฐ ํ˜•์‹ ์ง€์ • ๋“ฑ)์„ ์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์บ์‹ฑ ์ง€์› : HTTP๋Š” ์บ์‹ฑ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ „์†ก ํšจ์œจ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.
    • ๋ณด์•ˆ : HTTPS(SSL/TLS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” HTTP) ๋„์ž….
    • ์†๋„ : ํ•ด๊ฒฐ: HTTP/2, HTTP/3.

     

     

    HTTP ๊ตฌ์กฐ

     

     

     

    • ์š”์ฒญ ๋ฉ”์„ธ์ง€ (Request Message)



    • HTTP ๋ฉ”์„œ๋“œ 
    • ์š”์ฒญ URL  (๊ฐ€์ ธ์˜ค๋ ค๋Š” ๋ฆฌ์†Œ์Šค์˜ ๊ฒฝ๋กœ)
    • HTTP ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „
    • Header ( ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์„ ํƒ์  ํ—ค๋” )
    • Body ( POST์™€ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๋ฅผ ์œ„ํ•œ, ์ „์†ก๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•˜๋Š” ์‘๋‹ต์˜ ๋ณธ๋ฌธ)

     


     

    • ์‘๋‹ต ๋ฉ”์„ธ์ง€ (Response Messge)

    `HTTP/1.1 404 Not Found.`

    • HTTP ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „ | ์ƒํƒœ ์ฝ”๋“œ ( ์š”์ฒญ์˜ ์„ฑ๊ณต ์—ฌ๋ถ€์™€, ๊ทธ ์ด์œ ) | ์ƒํƒœ ๋ฉ”์‹œ์ง€ ( ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ๋ ฅ์ด ์—†๋Š”, ์ƒํƒœ ์ฝ”๋“œ์˜ ์งง์€ ์„ค๋ช… )
    • Header ( HTTP ํ—ค๋”๋“ค , ์š”์ฒญ ํ—ค๋”์™€ ๋น„์Šท )
    • Body (์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ๊ฐ€์ ธ์˜จ ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋˜๋Š” ๋ณธ๋ฌธ)

     


     

    HTTP ์ž‘๋™ ์›๋ฆฌ

     

    ๊ธฐ๋ณธ์ ์œผ๋กœ ์š”์ฒญ(Request) ์™€ ์‘๋‹ต (Response) ์˜ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

     

    1) ํด๋ผ์ด์–ธํŠธ๊ฐ€ TCP(Transmission Control Protocol) ์—ฐ๊ฒฐ

    2) ํด๋ผ์ด์–ธํŠธ๊ฐ€  HTTP ๋ฉ”์‹œ์ง€๋ฅผ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ

    3) ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ๋ฐ›์•„ ํ•ด๋‹น ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑ

    4) ์„œ๋ฒ„๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜ํ™˜

    5) ํด๋ผ์ด์–ธํŠธ๊ฐ€  TCP  ์—ฐ๊ฒฐ์„ ๋‹ซ๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์š”์ฒญ๋“ค์„ ์œ„ํ•ด ์žฌ์‚ฌ์šฉ

     


     

     

    HTTP ๋ฒ„์ „ (Version)

    1. HTTP/0.9
    2. HTTP/1.0
      • ๊ธฐ๋ณธ์ ์ธ ์š”์ฒญ๊ณผ ์‘๋‹ต.
      • ์—ฐ๊ฒฐ ์žฌ์‚ฌ์šฉ ๋ถˆ๊ฐ€.( ๊ฐ ์š”์ฒญ/์‘๋‹ต์— ๋Œ€ํ•ด ๋ณ„๋„์˜ TCP ์—ฐ๊ฒฐ์„ ์—ผ = ๋น„ํšจ์œจ์  )
    3. HTTP/1.1
      • ์—ฐ๊ฒฐ ์žฌ์‚ฌ์šฉ (Keep-Alive) = ์ง€์†์ ์ธ ์—ฐ๊ฒฐ์˜ ๊ฐœ๋…
      • ๋” ๋‚˜์€ ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ.
      • ํ—ค๋“œ ์˜ค๋ธŒ ๋ผ์ธ(HOL) ์ฐจ๋‹จ → ํŒŒ์ดํ”„๋ผ์ด๋‹ ๊ฐœ๋… 
    4. HTTP/2
      • ์บก์Šํ™”๊ฐ€ ๋˜์–ด์žˆ์–ด์„œ /2 ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” ์ธ๊ฐ„์ด ์ฝ์„ ์ˆ˜ ์—†๋‹ค.
      • ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ(๋™์‹œ์— ์—ฌ๋Ÿฌ ์š”์ฒญ ์ฒ˜๋ฆฌ).
      • ํ—ค๋” ์••์ถ•์œผ๋กœ ํšจ์œจ์„ฑ ์ฆ๊ฐ€.
    5. HTTP/3
      • UDP ๊ธฐ๋ฐ˜์˜ QUIC ํ”„๋กœํ† ์ฝœ ์‚ฌ์šฉ.
      • ๋น ๋ฅธ ์—ฐ๊ฒฐ ๋ฐ ๋ฐ์ดํ„ฐ ์ „์†ก.

     


    https://axios-http.com/kr/docs/intro

    https://developer.mozilla.org/ko/docs/Web/HTTP/Overview

    https://docs.tosspayments.com/resources/glossary/http-protocol

    https://www.nossi.dev/06936fc0-eb03-4a53-8e4f-2e5dc71508dd