[HTTP] HTTP๋ž€?

2024. 12. 18. 15:08ยท๐ŸŒ Network/๐Ÿ“œHTTP

HTTP

HTTP๋Š” HyperText Transfer Protocol์˜ ์•ฝ์ž์ด๋‹ค.

 

HyperText

- HyperText ํ•˜์ดํผ๋งํฌ์™€ ๊ฐ™์€ ์ฐธ์กฐ๋ฅผ ๊ฑธ์–ด ๋‹ค๋ฅธ ๋ฌธ์„œ๋กœ ์ด๋™์„ ํ•˜๊ฒŒ ๋„์™€์ฃผ๋Š” ํ…์ŠคํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

Transfer

- "์˜ฎ๊ธฐ๋‹ค" ๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.

Protocol

- "๊ทœ์•ฝ" ์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.

 

์ฆ‰, HyperText๋ฅผ ์˜ฎ๊ธฐ๊ฒŒ ๋„์™€์ฃผ๋Š” ๊ทœ์•ฝ์„ ์˜๋ฏธํ•œ๋‹ค.

์‰ฝ๊ฒŒ ๋งํ•ด, ์›น์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„์˜ HyperText ๊ธฐ๋Šฅ์ด ๋“ค์–ด๊ฐ€์žˆ๋Š” ๋ฌธ์„œ๋“ค์„ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ํ†ตํ•ด ์ œ๊ณต์„ ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ๊ทœ์•ฝ์„ ํ•ด๋†“๊ณ  ํ•ด๋‹น ๊ทœ์•ฝ ํ‹€์•ˆ์—์„œ ์ œ๊ณต์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

 

Protocol(๊ทœ์•ฝ)์˜ ์กด์žฌ ์ด์œ 

HTTP์™€ ๊ฐ™์ด ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ด ์—†๋‹ค๋ฉด, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„ ๋„ˆ๋ฌด ๋‹ค์–‘ํ•œ ํ†ต์‹  ๋ฐฉ๋ฒ•์ด ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ํ†ต์ผํ•˜์ž๋Š” ๊ฐœ๋…์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ํ†ต์‹  ๊ทœ์•ฝ์ด๋‹ค.

 

HTTP ํ†ต์‹  ํ”„๋กœํ† ์ฝœ ๊ทœ์•ฝ

1. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„ ๊ตฌ์กฐ

์›ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ์š”์ฒญ์„ ํ•˜๋Š” ๊ณณ์„ ํด๋ผ์ด์–ธํŠธ, ์š”์ฒญ์„ ๋ฐ›์•„์„œ ๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ณณ์„ ์„œ๋ฒ„๋กœ ๋‚˜๋ˆˆ๋‹ค๋Š” ์ผ๋ฐ˜์ ์ธ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ํ˜•ํƒœ๋ฅผ ์ •์˜ํ•œ ๊ตฌ์กฐ๋ฅผ ๊ทœ์•ฝ์œผ๋กœ์จ ์ •ํ•ด๋†“๋Š”๋‹ค.

2. ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ

HTTP๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„์— ์š”์ฒญ๊ณผ ์‘๋‹ต ๊ณผ์ •์—์„œ ์š”์ฒญ ํ›„ ์‘๋‹ต์ด ๊ฐ€๋ฉด ๋ฐ”๋กœ ์—ฐ๊ฒฐ์„ ๋Š๋Š” ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ ์ง€์–‘

3. HTTP๋ฉ”์‹œ์ง€ & Request & Response

์•ž์„œ ๋งํ•œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„์˜ ๊ตฌ์กฐ์—์„œ ์š”์ฒญ์ธ Request ์‘๋‹ต์ธ Response์— ๋Œ€ํ•œ ๊ตฌ์กฐ๋ฅผ HTTP ๋ฉ”์‹œ์ง€๋กœ์จ ํ†ต์‹ ์„ ํ•˜๊ฒŒ ๋œ๋‹ค. HTTP ๋ฉ”์‹œ์ง€๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ๊ฐ™์ด ๋„˜๊ธฐ๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ ๋“ค์–ด๊ฐ€๋Š” ์ •๋ณด๋กœ๋Š” URL, ํ—ค๋”, ์š”์ฒญ ๋ณธ๋ฌธ ๋“ฑ์„ ํฌํ•จํ•˜์—ฌ ์„œ๋ฒ„์— ์ฃผ๊ฒŒ ๋˜๊ณ  ์„œ๋ฒ„ ๋˜ํ•œ, HTTP ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‘๋‹ต์„ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋•Œ ๋“ค์–ด๊ฐ€๋Š” ์ •๋ณด๋Š” ์ƒํƒœ ์ฝ”๋“œ, ํ—ค๋”, ๋ณธ๋ฌธ ๋“ฑ์„ ํฌํ•จํ•˜์—ฌ Response๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค.

4. HTTP ๋ฉ”์„œ๋“œ

๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” GET, POST, PUT, DELETE, PATCH ์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ HTTP ๋ฉ”์‹œ์ง€์— ๊ฐ™์ด ๋‹ด์•„์„œ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋“ค์˜ ์˜๋ฏธ๋Š” ๊ฐ๊ฐ 

 

  • GET: ์„œ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ๋ฉ”์„œ๋“œ. ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Œ.
  • POST: ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๋ฉ”์„œ๋“œ.
  • PUT: ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๋ฉ”์„œ๋“œ.
  • DELETE: ์„œ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฉ”์„œ๋“œ.
  • HEAD: GET๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ, ์‘๋‹ต ๋ณธ๋ฌธ ์—†์ด ํ—ค๋”๋งŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ.
  • OPTIONS: ์„œ๋ฒ„๊ฐ€ ์ง€์›ํ•˜๋Š” HTTP ๋ฉ”์„œ๋“œ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฉ”์„œ๋“œ.
  • PATCH: ๋ฆฌ์†Œ์Šค์˜ ์ผ๋ถ€๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฉ”์„œ๋“œ.

 

์ด๋Ÿฌํ•œ ์˜๋ฏธ๋ฅผ ๋„๊ฒŒ ๋˜๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ํ† ๋Œ€๋กœ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์„ API ํ˜ธ์ถœ์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์œ„์˜ ๋ฐฉ๋ฒ•๋“ค์„ ๋‹ค ์ง€ํ‚ค๊ฒŒ ๋˜๋ฉด RESTfulํ•œ API๋ผ๊ณ  ๋ถ€๋ฅด๊ฒŒ ๋œ๋‹ค.

5. ์ƒํƒœ ์ฝ”๋“œ

Response๊ณผ์ •์—์„œ๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜์—ˆ๋А๋ƒ์— ๋”ฐ๋ผ์„œ ์ƒํƒœ์ฝ”๋“œ๋ฅผ ๋ณด๋‚ด์ฃผ๊ฒŒ ๋˜๊ณ , ์ƒํƒœ์ฝ”๋“œ์— ๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

* ๋Œ€ํ‘œ์  ์ƒํƒœ ์ฝ”๋“œ

 

  • 1xx (์ •๋ณด ์‘๋‹ต): ์š”์ฒญ์„ ์ฒ˜๋ฆฌ ์ค‘์ธ ์ƒํƒœ. ์˜ˆ: 100 Continue.
  • 2xx (์„ฑ๊ณต ์‘๋‹ต): ์š”์ฒญ์ด ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋œ ์ƒํƒœ. ์˜ˆ: 200 OK.
  • 3xx (๋ฆฌ๋‹ค์ด๋ ‰์…˜): ์š”์ฒญ์„ ๋‹ค๋ฅธ ์œ„์น˜๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ํ•ด์•ผ ํ•˜๋Š” ์ƒํƒœ. ์˜ˆ: 301 Moved Permanently.
  • 4xx (ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜): ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ์ƒํƒœ. ์˜ˆ: 404 Not Found.
  • 5xx (์„œ๋ฒ„ ์˜ค๋ฅ˜): ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ์ƒํƒœ. ์˜ˆ: 500 Internal Server Error.

 

6. ํ—ค๋”

- HTTP ๋ฉ”์‹œ์ง€์— ์ •๋ณด๋ฅผ ๋„˜๊ธธ ๋•Œ ์ฆ‰, ์š”์ฒญ๊ณผ ์‘๋‹ต์— ์ถ”๊ฐ€์ ์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ์ด ๋œ๋‹ค.

- ๋ฉ”์‹œ์ง€์— ํฌํ•จ์ด ๋˜์–ด์„œ ์š”์ฒญ๊ณผ ์‘๋‹ต์ด ์ „๋‹ฌ์ด ๋˜๊ฒŒ ๋œ๋‹ค.

์˜ˆ์‹œ๋กœ๋Š”

Content-Type : ์‘๋‹ต ๋ณธ๋ฌธ์— ์ฝ˜ํ…์ธ  ์œ ํ˜•

Authorization : ์ธ์ฆ ์ •๋ณด

User-Agent : ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ •๋ณด

 

7. URL

HTTP ์š”์ฒญ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์ฃผ์†Œ์ด๋‹ค. URL์€ ํ”„๋กœํ† ์ฝœ, ๋„๋ฉ”์ธ, ๊ฒฝ๋กœ, ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ์ด ๋œ๋‹ค.

์˜ˆ์‹œ๋กœ๋Š”

[http://www.example.com/hello?search=query]

http : ํ”„๋กœํ† ์ฝœ

[www.example.com] : ๋„๋ฉ”์ธ

/hello : ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ

?search=query : ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด

 

๊ฒฐ๋ก 

์ด๋Ÿฌํ•œ ์ •๋ณด๋“ค์„ ํ†ต์‹  ๊ทœ์•ฝ์œผ๋กœ์จ ์ •ํ•ด๋†“์•˜๊ณ , ์›น์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด์„œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ HTTP๋Š” ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ด๋ผ๋Š” ์  ๊ทธ๋ฆฌ๊ณ  ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๋‘ ๊ฐ€์ง€๋ฅผ ๋‚˜๋ˆ„์–ด์„œ ๋ฌธ์„œ๋ฅผ ์š”์ฒญ๊ณผ ์‘๋‹ต์œผ๋กœ ๋ฐ›๋Š”๋‹ค๋Š” ๊ตฌ์กฐ๊ฐ€ ๋งค์šฐ ํ•ต์‹ฌ์ ์ธ ๋‚ด์šฉ์ด๋‹ค.

'๐ŸŒ Network > ๐Ÿ“œHTTP' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

SOP & CORS  (5) 2025.01.23
[HTTP] ์›น ํƒ„์ƒ ๋ฐฐ๊ฒฝ  (0) 2024.12.18
[HTTP] WebSocket  (3) 2024.12.08
[HTTP] CSR & SSR ์ด๋ž€?  (1) 2024.11.14
(HTTP) Stateless, Stateful  (3) 2024.04.26
'๐ŸŒ Network/๐Ÿ“œHTTP' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • SOP & CORS
  • [HTTP] ์›น ํƒ„์ƒ ๋ฐฐ๊ฒฝ
  • [HTTP] WebSocket
  • [HTTP] CSR & SSR ์ด๋ž€?
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด๋ณด๊ธฐ (155)
      • ๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต (26)
        • ๐Ÿ–ฅ๏ธ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ (1)
        • ๐ŸŒ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ… (11)
        • โš™๏ธ์ปดํ“จํ„ฐ์˜ ์ดํ•ด (11)
        • ๐Ÿ›๏ธ์„ธ๊ณ„์˜์ •์น˜์™€๊ฒฝ์ œ (3)
      • ๐Ÿ› ๏ธBackend (52)
        • ๐Ÿ“š๋ฐฑ์—”๋“œ ๊ณต๋ถ€ (4)
        • โ˜•Java (21)
        • ๐ŸŒณSpring (11)
        • โšกPython (13)
        • JavaScript (1)
        • ๐Ÿ›ข๏ธDatabase (0)
        • Algorithm Problem Solving (2)
      • ๐ŸŒ Network (7)
        • ๐Ÿ“œHTTP (7)
      • ๐Ÿš€DevOps (1)
      • Data Structure (1)
      • โ›บ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ (65)
      • ์žก๋‹ด (1)
      • ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธ€ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ž…์ถœ๋ ฅ
    ์„ธ๊ณ„ํ™”
    Python
    ์œ ๋น„์ฟผํ„ฐ์Šค
    ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…๊ฐœ๋ก 
    ์ž๋ฐ”
    ํŒŒ์ด์ฌ
    ์ปดํ“จํ„ฐ์˜ ์ดํ•ด
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…
    spring
    ์Šคํ”„๋ง
    ์ปดํŒŒ์ผ๋Ÿฌ
    ํด๋ž˜์Šค
    ๋ฐฉ์†ก๋Œ€
    Spring Framework
    Java
    ํด๋ผ์šฐ๋“œ
    ๋ฐฉํ†ต๋Œ€
    ๋‹คํ˜•์„ฑ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
junbin2
[HTTP] HTTP๋ž€?
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”