πŸ“š HTTP μ™„λ²½κ°€μ΄λ“œ - 3μž₯. HTTP λ©”μ‹œμ§€

BOOaΒ·2025λ…„ 4μ›” 16일

HTTP

λͺ©λ‘ 보기
3/6
post-thumbnail

πŸ“ 핡심 κ°œλ… μš”μ•½

  • HTTP λ©”μ‹œμ§€ ꡬ쑰 : μ‹œμž‘μ€„ β†’ 헀더 β†’ λ³Έλ¬Έ μˆœμ„œμ˜ 데이터 블둝
  • μš”μ²­ λ©”μ‹œμ§€ : <λ©”μ„œλ“œ> <μš”μ²­ URL> <버전> 으둜 μ‹œμž‘
  • 응닡 λ©”μ‹œμ§€ : <버전> <μƒνƒœ μ½”λ“œ> <μ‚¬μœ  ꡬ절> 둜 μ‹œμž‘
  • 헀더 : μš”μ²­/응닡에 λŒ€ν•œ 뢀가정보 전달 (key:value ν˜•νƒœ)
  • μƒνƒœ μ½”λ“œ : 응닡 κ²°κ³Όλ₯Ό 1xx~5xx둜 λΆ„λ₯˜ν•˜μ—¬ λ‚˜νƒ€λƒ„
  • CORS κ΄€λ ¨ 헀더 : 좜처 μ œν•œ, 인증 처리 등을 μ œμ–΄ν•˜λŠ” λ³΄μ•ˆ κ΄€λ ¨ ν•„λ“œ

✨ 포인트

  • PUT : 전체 μˆ˜μ • / PATCH : 일뢀 μˆ˜μ •
  • 둜그인 μƒνƒœ μœ μ§€ β†’ 토큰/JWT/μΏ ν‚€ + Authorization 헀더 μ‘°ν•© ν•„μš”
  • Content-Type: application/json β†’ JSON ν˜•μ‹ λͺ…μ‹œ
  • Authorization: Bearer <token> β†’ 인증 정보 포함
  • Accept β†’ λ°›κ³  싢은 응닡 포맷 μ„€μ •

βœ…γ…€λ©”μ‹œμ§€μ˜ 흐름

HTTPκ°€ μΈν„°λ„·μ˜ 배달원이라면, HTTP λ©”μ‹œμ§€λŠ” μ†Œν¬μ™€ κ°™λ‹€.
데이터λ₯Ό 담은 λ©”μ‹œμ§€λŠ” ν΄λΌμ΄μ–ΈνŠΈ ↔️ ν”„λ½μ‹œ ↔️ μ„œλ²„ 사이λ₯Ό 흐λ₯΄λ©° 정보λ₯Ό κ΅ν™˜ν•œλ‹€.

  • μ‹œμž‘μ€„ β†’ 헀더 β†’ λ³Έλ¬Έ 순으둜 ꡬ성
  • μΈλ°”μš΄λ“œ : μ„œλ²„λ₯Ό ν–₯함
  • μ•„μ›ƒλ°”μš΄λ“œ : μ‚¬μš©μž μ—μ΄μ „νŠΈλ‘œ λŒμ•„μ˜΄
  • μ—…μŠ€νŠΈλ¦Ό/λ‹€μš΄μŠ€νŠΈλ¦Ό : λ„€νŠΈμ›Œν¬μ˜ λ°©ν–₯을 λ‚˜νƒ€λƒ„

βœ…γ…€λ©”μ‹œμ§€ 문법

πŸ“Œ μš”μ²­ λ©”μ‹œμ§€ ꡬ쑰

<λ©”μ„œλ“œ> <μš”μ²­ URL> <버전>
<헀더>
<λ³Έλ¬Έ>

πŸ“Œ 응닡 λ©”μ‹œμ§€ ꡬ쑰

<버전> <μƒνƒœ μ½”λ“œ> <μ‚¬μœ  ꡬ절>
<헀더>
<λ³Έλ¬Έ>

본문이 없더라도, 헀더 블둝은 λ°˜λ“œμ‹œ CRLF(빈 쀄)둜 λλ‚˜μ•Ό ν•œλ‹€.


βœ…γ…€λ©”μ„œλ“œ

λ©”μ„œλ“œμ„€λͺ…
GETλ¬Έμ„œ μš”μ²­
HEADν—€λ”λ§Œ μš”μ²­
POST데이터 전솑
PUTλ¦¬μ†ŒμŠ€ 생성/ꡐ체
DELETEλ¦¬μ†ŒμŠ€ μ‚­μ œ
OPTIONS지원 λ©”μ„œλ“œ 쑰회
TRACEμš”μ²­ 경둜 좔적
...ν™•μž₯ λ©”μ„œλ“œ (LOCK, COPY λ“±)

βœ…γ…€ν—€λ”

헀더섀λͺ…
Content-Typeλ³Έλ¬Έ 데이터 ν˜•μ‹
Acceptν΄λΌμ΄μ–ΈνŠΈκ°€ μ›ν•˜λŠ” 응닡 ν˜•μ‹
Authorization인증 정보 (토큰 λ“±)
Cookie / Set-Cookieμ„Έμ…˜ μœ μ§€
Connectionμ—°κ²° μœ μ§€ (keep-alive, close)

βœ…γ…€λ³Έλ¬Έ

  • 전솑할 μ‹€μ œ 데이터
  • POST , PUT λ“±μ—μ„œ 주둜 μ‚¬μš©
  • ν”„λ‘ νŠΈμ—”λ“œμ—μ„œλŠ” 보톡 JSON.stringify() 둜 감싼 JSON 데이터λ₯Ό 전솑
body: JSON.stringify({ name: 'Bo00oa' })

βœ…γ…€μƒνƒœμ½”λ“œ

λ²”μœ„μ„€λͺ…
1xx정보 (Processing 쀑)
2xx성곡
3xxλ¦¬λ‹€μ΄λ ‰μ…˜
4xxν΄λΌμ΄μ–ΈνŠΈ 였λ₯˜
5xxμ„œλ²„ 였λ₯˜

πŸ“Œ μ£Όμš” μƒνƒœ μ½”λ“œ

μ½”λ“œμ˜λ―Έμ„€λͺ…
200OKμš”μ²­ 성곡
201Createdλ¦¬μ†ŒμŠ€ 생성됨
204No Contentλ³Έλ¬Έ μ—†μŒ
301Moved Permanently영ꡬ 이동
400Bad Request잘λͺ»λœ μš”μ²­
401Unauthorized인증 ν•„μš”
403Forbiddenμ ‘κ·Ό κ±°λΆ€
404Not Foundλ¦¬μ†ŒμŠ€ μ—†μŒ
405Method Not Allowedν—ˆμš©λ˜μ§€ μ•Šμ€ λ©”μ„œλ“œ
500Internal Server Errorμ„œλ²„ 였λ₯˜
502Bad Gatewayκ²Œμ΄νŠΈμ›¨μ΄ 였λ₯˜
503Service Unavailableμ„œλΉ„μŠ€ λΆˆκ°€

βœ…γ…€CORS κ΄€λ ¨ 헀더

헀더섀λͺ…
Access-Control-Allow-Originν—ˆμš©λœ 좜처
Access-Control-Allow-Methodsν—ˆμš©λœ HTTP λ©”μ„œλ“œ
Access-Control-Allow-Headersν—ˆμš©λœ μš”μ²­ 헀더
Access-Control-Allow-CredentialsμΏ ν‚€ 포함 μ—¬λΆ€ (true)

0개의 λŒ“κΈ€