Skip to content

Latest commit

Β 

History

History
137 lines (100 loc) Β· 5.12 KB

File metadata and controls

137 lines (100 loc) Β· 5.12 KB

❗ HTTP(Hyper Text Transfer Protocol)

μΈν„°λ„·μ—μ„œ 데이터λ₯Ό 주고받을 수 μžˆλŠ” ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€. 

컴퓨터 λ˜λŠ” μ „μžκΈ°κΈ° κ°„μ˜ μ›ν™œν•œ 톡신을 μœ„ν•΄ μ§€ν‚€κΈ°λ‘œ μ•½μ†ν•œ κ·œμ•½μž…λ‹ˆλ‹€
ν”„λ‘œν† μ½œμ—λŠ” μ‹ ν˜Έ μ²˜λ¦¬λ²•, 였λ₯˜μ²˜λ¦¬, μ•”ν˜Έ, 인증, μ£Όμ†Œ 등을 ν¬ν•¨ν•©λ‹ˆλ‹€.



❗ νŠΉμ§•

HTTP ν”„λ‘œν† μ½œμ€ μƒνƒœκ°€ μ—†λŠ”(stateless) ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€. 

μ—¬κΈ°μ„œ μƒνƒœκ°€ μ—†λ‹€λΌλŠ” 말은 데이터λ₯Ό μ£Όκ³  λ°›κΈ° μœ„ν•œ 각각의 데이터 μš”μ²­μ΄
μ„œλ‘œ λ…λ¦½μ μœΌλ‘œ 관리가 λœλ‹€λŠ” λ§μž…λ‹ˆλ‹€. μ’€ 더 μ‰½κ²Œ λ§ν•΄μ„œ 이전 데이터
μš”μ²­κ³Ό λ‹€μŒ 데이터 μš”μ²­μ΄ μ„œλ‘œ 관련이 μ—†λ‹€λŠ” 말이죠.

μ΄λŸ¬ν•œ νŠΉμ§• 덕택에 μ„œλ²„λŠ” μ„Έμ…˜κ³Ό 같은 λ³„λ„μ˜ μΆ”κ°€ 정보λ₯Ό κ΄€λ¦¬ν•˜μ§€ μ•Šμ•„λ„
되고, λ‹€μˆ˜μ˜ μš”μ²­ 처리 및 μ„œλ²„μ˜ λΆ€ν•˜λ₯Ό 쀄일 수 μžˆλŠ” μ„±λŠ₯ μƒμ˜ 이점이
μƒκΉλ‹ˆλ‹€.

HTTP ν”„λ‘œν† μ½œμ€ 일반적으둜 TCP/IP 톡신 μœ„μ—μ„œ λ™μž‘ν•˜λ©° 
κΈ°λ³Έ ν¬νŠΈλŠ”  '80'λ²ˆμž…λ‹ˆλ‹€.

HTTP Request & HTTP Response

HTTP ν”„λ‘œν† μ½œλ‘œ 데이터λ₯Ό μ£Όκ³ λ°›κΈ° μœ„ν•΄μ„œλŠ” μ•„λž˜μ™€ 같이
μš”μ²­(Request)을 보내고 응닡(Response)을 λ°›μ•„μ•Ό ν•©λ‹ˆλ‹€.



❗ HTTP μš”μ²­ λ©”μ„œλ“œ

μ„œλ²„μ— νŠΉμ • 데이터λ₯Ό μš”μ²­ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 
HTTP μš”μ²­ λ©”μ„œλ“œ(Http Request Methods)λ₯Ό μ΄μš©ν•©λ‹ˆλ‹€.

일반적으둜 HTTP μš”μ²­ λ©”μ„œλ“œλŠ” HTTP Verbs라고도 λΆˆλ¦°λ‹€
μ£Όμš” λ©”μ†Œλ“œ

  1. GET : μ‘΄μž¬ν•˜λŠ” μžμ›μ— λŒ€ν•œ μš”μ²­
  2. POST : μƒˆλ‘œμš΄ μžμ›μ„ 생성
  3. PUT : μ‘΄μž¬ν•˜λŠ” μžμ›μ— λŒ€ν•œ λ³€κ²½
  4. DELETE : μ‘΄μž¬ν•˜λŠ” μžμ›μ— λŒ€ν•œ μ‚­μ œ

기타 μš”μ²­ λ©”μ†Œλ“œ
  1. HEAD : μ„œλ²„ 헀더 정보λ₯Ό νšλ“. GETκ³Ό λΉ„μŠ·ν•˜λ‚˜ Response Bodyλ₯Ό λ°˜ν™˜ν•˜μ§€ μ•ŠμŒ
  2. OPTIONS : μ„œλ²„ μ˜΅μ…˜λ“€μ„ ν™•μΈν•˜κΈ° μœ„ν•œ μš”μ²­. CORSμ—μ„œ μ‚¬μš©



❗ HTTP μƒνƒœ μ½”λ“œ

μš”μ²­ λ©”μ„œλ“œκ°€ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„€μ •ν•΄μ•Ό ν•  정보라면 
HTTP μƒνƒœ μ½”λ“œ(HTTP Status Code)λŠ” μ„œλ²„μ—μ„œ μ„€μ •ν•΄μ£ΌλŠ” 
응닡(Response) μ •λ³΄μž…λ‹ˆλ‹€.

ν”„λŸ°νŠΈμ—”λ“œ 개발자 μž…μž₯μ—μ„œλŠ” λ”μš±μ΄ μ€‘μš”ν•œ μ΄μœ κ°€ 
이 μƒνƒœ μ½”λ“œλ‘œ μ—λŸ¬ 처리λ₯Ό ν•  수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

ν•œ μ˜ˆμ‹œλ₯Ό λ“€μ–΄ μ•„λž˜μ™€ 같이 μ‚¬μš©μž λͺ©λ‘μ„ λ°›μ•„μ˜€λŠ”
GET λ©”μ„œλ“œ μš”μ²­μ„ λ‚ λ €λ³΄κ² μŠ΅λ‹ˆλ‹€.

http://domain.com/users

μœ„ μš”μ²­μ„ 보내고 λ‚˜λ©΄ μ„œλ²„μ—μ„œ μ‘λ‹΅μœΌλ‘œ μ˜€λŠ” μƒνƒœ μ½”λ“œκ°€ 크게 2개둜 λ‚˜λ‰©λ‹ˆλ‹€.
200(성곡)κ³Ό 404(μ‹€νŒ¨)μž…λ‹ˆλ‹€.
λ”°λΌμ„œ, 이 HTTP μƒνƒœ μ½”λ“œλ‘œ 좔가적인 λ‘œμ§μ„ κ΅¬ν˜„ν•  수 있죠.

μ£Όμš” μƒνƒœ μ½”λ“œλŠ” 200λ²ˆλŒ€λΆ€ν„° 500λ²ˆλŒ€κΉŒμ§€ λ‹€μ–‘ν•˜κ²Œ μžˆμ§€λ§Œ μ£Όμš”ν•œ μƒνƒœ μ½”λ“œλ§Œ λͺ‡ 개 μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.



2️⃣ 2xx - 성곡

200λ²ˆλŒ€μ˜ μƒνƒœ μ½”λ“œλŠ” λŒ€λΆ€λΆ„ 성곡을 μ˜λ―Έν•©λ‹ˆλ‹€.
  1. 200 : GET μš”μ²­μ— λŒ€ν•œ 성곡
  2. 204 : No Content. μ„±κ³΅ν–ˆμœΌλ‚˜ 응닡 본문에 데이터가 μ—†μŒ
  3. 205 : Reset Content. μ„±κ³΅ν–ˆμœΌλ‚˜ ν΄λΌμ΄μ–ΈνŠΈμ˜ 화면을 μƒˆλ‘œ κ³ μΉ¨ν•˜λ„λ‘ ꢌ고
  4. 206 : Partial Conent. μ„±κ³΅ν–ˆμœΌλ‚˜ 일뢀 λ²”μœ„μ˜ λ°μ΄ν„°λ§Œ λ°˜ν™˜

3️⃣ 3xx - λ¦¬λ‹€μ΄λ ‰μ…˜

300λ²ˆλŒ€μ˜ μƒνƒœ μ½”λ“œλŠ” λŒ€λΆ€λΆ„ ν΄λΌμ΄μ–ΈνŠΈκ°€ 이전 μ£Όμ†Œλ‘œ 데이터λ₯Ό μš”μ²­ν•˜μ—¬
μ„œλ²„μ—μ„œ μƒˆ URL둜 λ¦¬λ‹€μ΄λ ‰νŠΈλ₯Ό μœ λ„ν•˜λŠ” κ²½μš°μž…λ‹ˆλ‹€.
  1. 301 : Moved Permanently, μš”μ²­ν•œ μžμ›μ΄ μƒˆ URL에 쑴재
  2. 303 : See Other, μš”μ²­ν•œ μžμ›μ΄ μž„μ‹œ μ£Όμ†Œμ— 쑴재
  3. 304 : Not Modified, μš”μ²­ν•œ μžμ›μ΄ λ³€κ²½λ˜μ§€ μ•Šμ•˜μœΌλ―€λ‘œ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μΊμ‹±λœ μžμ›μ„ μ‚¬μš©ν•˜λ„λ‘ ꢌ고. ETag와 같은 정보λ₯Ό ν™œμš©ν•˜μ—¬ λ³€κ²½ μ—¬λΆ€λ₯Ό 확인

4️⃣ 4xx - ν΄λΌμ΄μ–ΈνŠΈ μ—λŸ¬

400λ²ˆλŒ€ μƒνƒœ μ½”λ“œλŠ” λŒ€λΆ€λΆ„ ν΄λΌμ΄μ–ΈνŠΈμ˜ μ½”λ“œκ°€ 잘λͺ»λœ κ²½μš°μž…λ‹ˆλ‹€. 
μœ νš¨ν•˜μ§€ μ•Šμ€ μžμ›μ„ μš”μ²­ν–ˆκ±°λ‚˜ μš”μ²­μ΄λ‚˜ κΆŒν•œμ΄ 잘λͺ»λœ 경우 λ°œμƒν•©λ‹ˆλ‹€.
κ°€μž₯ μ΅μˆ™ν•œ μƒνƒœ μ½”λ“œλŠ” 404 μ½”λ“œμž…λ‹ˆλ‹€. 
μš”μ²­ν•œ μžμ›μ΄ μ„œλ²„μ— μ—†λ‹€λŠ” 의미죠.
  1. 400 : Bad Request, 잘λͺ»λœ μš”μ²­
  2. 401 : Unauthorized, κΆŒν•œ 없이 μš”μ²­. Authorization 헀더가 잘λͺ»λœ 경우
  3. 403 : Forbidden, μ„œλ²„μ—μ„œ ν•΄λ‹Ή μžμ›μ— λŒ€ν•΄ μ ‘κ·Ό κΈˆμ§€
  4. 405 : Method Not Allowed, ν—ˆμš©λ˜μ§€ μ•Šμ€ μš”μ²­ λ©”μ„œλ“œ
  5. 409 : Conflict, μ΅œμ‹  μžμ›μ΄ μ•„λ‹Œλ° μ—…λ°μ΄νŠΈν•˜λŠ” 경우. ex) 파일 μ—…λ‘œλ“œ μ‹œ 버전 좩돌

5️⃣ 5xx - μ„œλ²„ μ—λŸ¬

500λ²ˆλŒ€ μƒνƒœ μ½”λ“œλŠ” μ„œλ²„ μͺ½μ—μ„œ 였λ₯˜κ°€ λ‚œ κ²½μš°μž…λ‹ˆλ‹€.
  1. 501 : Not Implemented, μš”μ²­ν•œ λ™μž‘μ— λŒ€ν•΄ μ„œλ²„κ°€ μˆ˜ν–‰ν•  수 μ—†λŠ” 경우
  2. 503 : Service Unavailable, μ„œλ²„κ°€ κ³ΌλΆ€ν•˜ λ˜λŠ” μœ μ§€ 보수둜 λ‚΄λ €κ°„ 경우

마무리

μ•žμ—μ„œ 배운 URL, μš”μ²­ λ©”μ„œλ“œ, μƒνƒœ μ½”λ“œλ₯Ό μ‘°ν•©ν•˜λ©΄ μ•„λž˜μ™€ 같은 ꡬ쑰가 λ‚˜μ˜΅λ‹ˆλ‹€