[λ„€νŠΈμ›Œν¬] HTTP ν”„λ‘œν† μ½œ

HTTP ν”„λ‘œν† μ½œμ˜ κ°œλ…

HTTP ν”„λ‘œν† μ½œ?

μ„œλ²„/ν΄λΌμ΄μ–ΈνŠΈ λͺ¨λΈμ„ λ”°λ₯΄λŠ” 데이터 μ†‘μˆ˜μ‹ μ„ μœ„ν•œ ν”„λ‘œν† μ½œ
μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ³„μΈ΅μ˜ ν”„λ‘œν† μ½œλ‘œ TCP/IP μœ„μ—μ„œ μž‘λ™
μ–΄λ–€ μ’…λ₯˜μ˜ 데이터든지 전솑할 수 있음 

μž‘λ™ 방식 

  1. ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μš”μ²­μ„ 보내면 μ„œλ²„λŠ” μš”μ²­μ„ μ²˜λ¦¬ν•˜μ—¬ 응닡함
  2. ν΄λΌμ΄μ–ΈνŠΈ : URIλ₯Ό μ΄μš©ν•˜μ—¬ μ„œλ²„μ— μš”μ²­μ„ 보냄 
  3. μ„œλ²„ : ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ λ°›μ•„, ν•΄μ„ν•˜κ³  응닡을 함, μ›Ήμ„œλ²„λŠ” 보톡 ν‘œμ€€ν¬νŠΈ 80번 포트둜 μ„œλΉ„μŠ€ 

HTTP ν”„λ‘œν† μ½œμ˜ νŠΉμ§• 

ν΄λΌμ΄μ–ΈνŠΈ μ„œλ²„ ꡬ쑰 

  1. Request-Response ꡬ쑰 
  2. ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­, μ„œλ²„κ°€ κ²°κ³Όλ₯Ό λ§Œλ“€μ–΄μ„œ 응닡
  3. ν΄λΌμ΄μ–ΈνŠΈλŠ” λ‹¨μˆœνžˆ UIλ₯Ό κ·Έλ¦¬λŠ” κΈ°λŠ₯만 λ‹΄λ‹Ή 
  4. μ„œλ²„λŠ” λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 및 데이터λ₯Ό λ‹΄λ‹Ή 
  5. λ…λ¦½μ μœΌλ‘œ μ„±μž₯ν•  수 있음 

λ¬΄μƒνƒœ ν”„λ‘œν† μ½œ 

  1. μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μƒνƒœλ₯Ό λ³΄μ‘΄ν•˜μ§€ μ•ŠμŒ 
  2. 쀑간에 λ‹€λ₯Έ 응닡 μ„œλ²„λ‘œ λ°”λ€Œμ–΄λ„ 상관 μ—†μŒ (μƒνƒœλ₯Ό μœ μ§€,관리할 ν•„μš”κ°€ μ—†κΈ° λ•Œλ¬Έ)  
    -> νŠΈλž˜ν”½μ΄ μ¦κ°€ν•΄λ„ μ„œλ²„λ₯Ό λŒ€κ±° νˆ¬μž…ν•  μˆ˜ μžˆλ‹€. 
    -> 응닡 μ„œλ²„λ₯Ό μ‰½κ²Œ λ°”κΏ€ 수 μžˆμœΌλ―€λ‘œ λ¬΄ν•œν•œ μ„œλ²„ 증섀이 κ°€λŠ₯ν•˜λ‹€. (Scale Out)
  3. 보톡 μ„œλ²„κ°€ μ•„λ‹Œ ν΄λΌμ΄μ–ΈνŠΈκ°€ μžμ‹ μ˜ 정보λ₯Ό μœ μ§€ν•¨ 
    -> ν΄λΌμ΄μ–ΈνŠΈκ°€ λ§Žμ€ 데이터λ₯Ό 전솑해야 ν•˜λŠ” λ¬Έμ œκ°€ 있음 
  4. 그런데 둜그인과 같은 κ²½μš°λŠ” λ¬΄μƒνƒœλ‘œ μ„€κ³„ν• μˆ˜κ°€ μ—†μŒ
    -> λΈŒλΌμš°μ € μΏ ν‚€μ™€ μ„œλ²„ μ„Έμ…˜λ“±μ„ μ‚¬μš©ν•˜μ—¬ μƒνƒœ μœ μ§€, μƒνƒœ μœ μ§€λŠ” μ΅œμ†Œν•œλ§Œ μ‚¬μš©ν•˜μž 

λΉ„ μ—°κ²°μ„±

  1. μ—°κ²° λͺ¨λΈμ€ ν΄λΌμ΄μ–ΈνŠΈκ°€ μ‚¬μš©ν•˜μ§€ μ•Šλ”λΌλ„ 계속 μ—°κ²°λ˜μ–΄ μžμ›μ„ μ†Œλͺ¨ν•œλ‹€λŠ” 단점이 있음 
  2. λΉ„μ—°κ²° λͺ¨λΈμ€ μ„œλ²„κ°€ 응닡을 ν•œ ν›„ λ°”λ‘œ 연결을 λŠμ–΄λ²„λ¦Ό 
    -> μ„œλ²„λ₯Ό μœ μ§€ν•˜λŠ” μžμ›μ„ μ΅œμ†Œν™”함
    -> λ™μ‹œμ— μ²˜λ¦¬ν•˜λŠ” μš”μ²­μ΄ 맀우 μž‘μŒ 
  3. 3-way handshaking이 λ°˜λ³΅λ˜λ©΄μ„œ μ‹œκ°„μ΄ 좔가됨 (html μš”μ²­, js μš”μ²­, css μš”μ²­…)
    -> ν˜„μž¬λŠ” HTTP μ§€μ† μ—°κ²°λ‘œ λ¬Έμ œ ν•΄κ²°, HTTP2, HTTP3μ—μ„œ λ§Žμ΄ μ΅œμ ν™”됨  
    -> HTTP 지속 μ—°κ²° : μ—°κ²° ν•œ ν›„ λͺ¨λ“  νŒŒμΌμ„ λ°›κ³  μ—°κ²° μ’…λ£Œ 
  4. μ–΄λ–»κ²Œλ“  Stateless둜 μ„€κ³„ν•˜μž!, 큰 νŠΈλž˜ν”½μ— μœ μ—°ν•˜λ‹€. 

 

HTTP λ©”μ‹œμ§€

 

μ‹œμž‘ 라인 

  1. μš”μ²­ λ©”μ‹œμ§€
    HTTP λ©”μ„œλ“œ (GET, POST, PUT, DELETE) 
    μš”μ²­ λŒ€μƒ (μ ˆλŒ€κ²½λ‘œ[?쿼리]) 
    HTTP VERSION 
  2. 응닡 λ©”μ‹œμ§€ 
    HTTP VERSION
    HTTP μƒνƒœμ½”λ“œ (200 : 성곡, 400 : ν΄λΌμ΄μ–ΈνŠΈ 였λ₯˜, 500 : μ„œλ²„ λ‚΄λΆ€ 였λ₯˜) 
    이유 문ꡬ (OK) 

 

HTTP 헀더 

  1. HTTP 전솑에 ν•„μš”ν•œ λͺ¨λ“  뢀가정보 
    ν•„λ“œ : κ°’ 
    λ©”μ‹œμ§€ λ°”λ””μ˜ λ‚΄μš©, 크기, μ••μΆ•, 인증, μš”μ²­ λΈŒλΌμš°μ € 정보, μ„œλ²„ 정보, μΊμ‹œ 관리 정보… 

 

HTTP λ©”μ‹œμ§€ λ°”λ”” 

  1. μ‹€μ œ 전솑할 데이터 
    HTML, 이미지, μ˜μƒ, JSON λ“±.. byte둜 ν‘œν˜„λ˜λŠ” λͺ¨λ“  데이터듀 

λ‹¨μˆœν•¨ ν™•μž₯ κ°€λŠ₯

  1. λ‹¨μˆœν•˜λ‹€.
  2. λ©”μ‹œμ§€λ„ 맀우 λ‹¨μˆœν•˜λ‹€.
  3.  ν¬κ²Œ μ„±κ³΅ν•˜λŠ” ν‘œμ€€ κΈ°μˆ μ€ λ‹¨μˆœν•˜μ§€λ§Œ ν™•μž₯ κ°€λŠ₯ν•œ κΈ°μˆ λ“€  

 

 

REFERENCE

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

 

λͺ¨λ“  개발자λ₯Ό μœ„ν•œ HTTP μ›Ή κΈ°λ³Έ 지식 - μΈν”„λŸ° | κ°•μ˜

싀무에 κΌ­ ν•„μš”ν•œ HTTP 핡심 κΈ°λŠ₯κ³Ό μ˜¬λ°”λ₯Έ HTTP API 섀계 방법을 ν•™μŠ΅ν•©λ‹ˆλ‹€., μ›Ή κΈ°μˆ μ„ μ‚¬μš©ν•˜λŠ” 개발자라면 λˆ„κ΅¬λ‚˜ OK!κΌ­ ν•„μš”ν•œ HTTP의 핡심을 μ•Œλ €λ“œλ¦½λ‹ˆλ‹€. πŸ“£ ν™•μΈν•΄μ£Όμ„Έμš”!λ³Έ κ°•μ˜λŠ” μžλ°” 슀

www.inflearn.com

https://shlee0882.tistory.com/107

 

HTTP ν”„λ‘œν† μ½œμ΄λž€?

1. HTTP ν”„λ‘œν† μ½œμ΄λž€? HTTP(Hypertext Transfer Protocol)λŠ” μΈν„°λ„·μƒμ—μ„œ 데이터λ₯Ό μ£Όκ³  λ°›κΈ° μœ„ν•œ μ„œλ²„/ν΄λΌμ΄μ–ΈνŠΈ λͺ¨λΈμ„ λ”°λ₯΄λŠ” ν”„λ‘œν† μ½œμ΄λ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 레벨의 ν”„λ‘œν† μ½œλ‘œ TCP/IPμœ„μ—μ„œ μž‘λ™ν•œλ‹€.

shlee0882.tistory.com