Skip to content

Latest commit

Β 

History

History
195 lines (114 loc) Β· 7.92 KB

File metadata and controls

195 lines (114 loc) Β· 7.92 KB

HTTP Method

HTTP νŠΉμ§•

HTTP λ™μž‘

HTTP Method

HTTP Status Code


HTTP νŠΉμ§•

  • HTTP λ©”μ‹œμ§€λŠ” HTTP μ„œλ²„μ™€ HTTP ν΄λΌμ΄μ–ΈνŠΈμ— μ˜ν•΄ ν•΄μ„λœλ‹€.

  • TCP/IP λ₯Ό μ΄μš©ν•˜λŠ” μ‘μš© ν”„λ‘œν† μ½œμ΄λ‹€.

  • HTTPλŠ” μ—°κ²° μƒνƒœλ₯Ό μœ μ§€ν•˜μ§€ μ•ŠλŠ” λΉ„μ—°κ²°μ„±(Stateless) ν”„λ‘œν† μ½œμ΄λ‹€.

  • HTTPλŠ” 연결을 μœ μ§€ν•˜μ§€ μ•ŠλŠ” ν”„λ‘œν† μ½œμ΄κΈ° λ•Œλ¬Έμ— μš”μ²­/응닡 λ°©μ‹μœΌλ‘œ λ™μž‘ν•œλ‹€.

μž₯점

  • λΆˆνŠΉμ • λ‹€μˆ˜λ₯Ό λŒ€μƒμœΌλ‘œ ν•˜λŠ” μ„œλΉ„μŠ€μ— μ ν•©ν•˜λ‹€. -> μ„œλ²„μ—μ„œ λ‹€μˆ˜μ˜ ν΄λΌμ΄μ–ΈνŠΈμ™€ 연결을 μ§€μ†ν•˜κ²Œ 되면 λ§Žμ€ λ¦¬μ†ŒμŠ€κ°€ λ°œμƒν•˜κ²Œ λœλ‹€. κ·Έλž˜μ„œ μ„œλ²„κ°€ 응닡을 마친 ν›„ 연결을 λŠμ–΄ μ—°κ²° μœ μ§€λ₯Ό μœ„ν•œ λ¦¬μ†ŒμŠ€λ₯Ό 쀄이고 더 λ§Žμ€ 연결을 ν•  수 있게 λœλ‹€.

단점

  • 연결을 λŠμ–΄λ²„λ¦¬κΈ° λ•Œλ¬Έμ— ν΄λΌμ΄μ–ΈνŠΈμ˜ 이전 상황을 μ•Œ 수 μ—†λ‹€. -> μ΄λŸ¬ν•œ νŠΉμ§• λ•Œλ¬Έμ— 정보λ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•΄ μΏ ν‚€, μ„Έμ…˜, 토큰 이 μ‚¬μš©λœλ‹€.

  • 평문 톡신이기에 도청이 κ°€λŠ₯ν•˜λ‹€. -> μ•”ν˜Έν™”


HTTP λ™μž‘

Clientκ°€ λΈŒλΌμš°μ €λ₯Ό 톡해 URI을 톡해 νŠΉμ • μš”μ²­(Request)을 보내면, ServerλŠ” ν•΄λ‹Ή μš”μ²­(Request)을 λ°›μ•„ 처리λ₯Ό ν•˜μ—¬ Clientμ—κ²Œ 응닡(Response)을 ν•˜λŠ” ν˜•νƒœ


HTTP Method

ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ—κ²Œ μ‚¬μš©μž μš”μ²­μ˜ λͺ©μ μ΄λ‚˜ μ’…λ₯˜λ₯Ό μ•Œλ¦¬λŠ” μˆ˜λ‹¨

Method μ„€λͺ…
GET URIκ°€ κ°€μ§„ 정보λ₯Ό κ²€μƒ‰ν•˜κΈ° μœ„ν•΄ μš”μ²­ν•˜λŠ” λ©”μ†Œλ“œ
HEAD GETλ©”μ†Œλ“œμ™€ 방식은 λ™μΌν•˜μ§€λ§Œ, 응닡에 BODYκ°€ μ—†κ³  응닡 μ½”λ“œμ™€ HEAD만 μ‘λ‹΅ν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” λ©”μ†Œλ“œ
POST μš”μ²­λœ μžμ›μ„ μƒμ„±ν•˜κΈ° μœ„ν•œ λ©”μ†Œλ“œ
PUT μš”μ²­λœ μžμ›μ„ μˆ˜μ •ν• λ•Œ μ‚¬μš©ν•˜κ³ , PATHCHμ™€λŠ” λ‹€λ₯΄κ²Œ μžμ› 전체λ₯Ό κ°±μ‹ ν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” λ©”μ†Œλ“œ
PATCH PUTλ©”μ†Œλ“œμ™€ μœ μ‚¬ν•˜κ²Œ μš”μ²­λœ μžμ›μ„ μˆ˜μ •ν• λ•Œ μ‚¬μš©λ˜μ§€λ§Œ, μžμ›μ˜ 일뢀λ₯Ό μˆ˜μ •ν•˜λŠ” 의미둜 μ‚¬μš©λ˜λŠ” λ©”μ†Œλ“œ
DELETE μš”μ²­λœ μžμ›μ„ μ‚­μ œν•˜κΈ° μœ„ν•œ λ©”μ†Œλ“œ
CONNECT λ™μ μœΌλ‘œ 터널 λͺ¨λ“œλ₯Ό κ΅ν™˜ν•˜κ³  ν”„λ½μ‹œ κΈ°λŠ₯을 μš”μ²­ν• λ•Œ μ‚¬μš©ν•˜λŠ” λ©”μ†Œλ“œ
TRACE 원격 μ„œλ²„μ— 루프백 λ©”μ„Έμ§€λ₯Ό ν˜ΈμΆœν•˜κΈ° μœ„ν•΄ ν…ŒμŠ€νŠΈμš©λ„λ‘œ μ‚¬μš©ν•˜λŠ” λ©”μ†Œλ“œ
OPTIONS μ›Ή μ„œλ²„μ—μ„œ μ§€μ›ν•˜λŠ” λ©”μ†Œλ“œμ˜ μ’…λ₯˜λ“€μ„ 확인할 경우 μ‚¬μš©ν•˜λŠ” λ©”μ†Œλ“œ

GET : μš”μ²­ν•˜λŠ” 데이터가 HTTP Request Message의 Header 뢀뢄에 url 이 λ‹΄κ²¨μ„œ μ „μ†‘λœλ‹€. λ•Œλ¬Έμ— url 상에 ? 뒀에 데이터가 λΆ™μ–΄ request λ₯Ό λ³΄λ‚΄κ²Œ λ˜λŠ” 것이닀.

ex) www.example.com/show?name1=value1&name2=value2

μ΄λŸ¬ν•œ 방식은 url μ΄λΌλŠ” 곡간에 담겨가기 λ•Œλ¬Έμ— 전솑할 수 μžˆλŠ” λ°μ΄ν„°μ˜ 크기가 μ œν•œμ μ΄λ‹€. 또 λ³΄μ•ˆμ΄ ν•„μš”ν•œ 데이터에 λŒ€ν•΄μ„œλŠ” 데이터가 κ·ΈλŒ€λ‘œ url 에 λ…ΈμΆœλ˜λ―€λ‘œ GET방식은 μ μ ˆν•˜μ§€ μ•Šλ‹€.

POST : POST λ°©μ‹μ˜ request λŠ” HTTP Request Message의 Body 뢀뢄에 데이터가 λ‹΄κ²¨μ„œ μ „μ†‘λœλ‹€.( body 의 νƒ€μž…μ€ Content-Type 헀더에 따라 κ²°μ • λœλ‹€.)

POST 둜 데이터λ₯Ό 전솑할 λ•Œ 길이 μ œν•œμ΄ λ”°λ‘œ μ—†μ–΄ μš©λŸ‰μ΄ 큰 데이터λ₯Ό 보낼 λ•Œ μ‚¬μš©ν•˜κ±°λ‚˜ GET처럼 데이터가 μ™ΈλΆ€μ μœΌλ‘œ λ“œλŸ¬λ‚˜λŠ”κ±΄ μ•„λ‹ˆλΌμ„œ λ³΄μ•ˆμ΄ ν•„μš”ν•œ 뢀뢄에 많이 μ‚¬μš©λœλ‹€. ( ν•˜μ§€λ§Œ 데이터λ₯Ό μ•”ν˜Έν™”ν•˜μ§€ μ•ŠμœΌλ©΄ body의 데이터도 κ²°κ΅­ λ³Ό 수 μžˆλŠ”κ±΄ λ˜‘κ°™λ‹€. )


HTTP λ©”μ„œλ“œμ˜ 속성

HTTP λ©”μ†Œλ“œμ˜ μ†μ„±μ—λŠ” μ•ˆμ „(Safe Methods), λ©±λ“±(Idempotent Methods), μΊμ‹œκ°€λŠ₯(Cacheable Methods)κ°€ μžˆλ‹€.

  1. μ•ˆμ „(Safe Methods): κ³„μ†ν•΄μ„œ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•΄λ„ λ¦¬μ†ŒμŠ€λ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠλŠ”λ‹€.
  2. λ©±λ“±(Idempotent Methods): λ©”μ†Œλ“œλ₯Ό 계속 ν˜ΈμΆœν•΄λ„ κ²°κ³Όκ°€ λ˜‘κ°™λ‹€.
  3. μΊμ‹œκ°€λŠ₯(Cacheable Methods): 캐싱을 ν•΄μ„œ 데이터λ₯Ό 효율적으둜 κ°€μ Έμ˜¬ 수 μžˆλ‹€.


HTTP Status code

ν΄λΌμ΄μ–ΈνŠΈκ°€ 보낸 μš”μ²­μ˜ 처리 μƒνƒœλ₯Ό μ‘λ‹΅μ—μ„œ μ•Œλ €μ£ΌλŠ” κΈ°λŠ₯

보톡 100λ²ˆλŒ€μ—μ„œ 500λ²ˆλŒ€λ₯Ό μ‚¬μš©ν•œλ‹€.


정보전솑 μž„μ‹œμ‘λ‹΅ (1xx)

  • μ„œλ²„κ°€ μš”μ²­μ„ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„±κ³΅μ μœΌλ‘œ μˆ˜μ‹ μ„ ν–ˆκ³  μ„œλ²„μ—μ„œ μ²˜λ¦¬μ€‘μΈ 정보λ₯Ό 보낸디.

    Status Code μ„€λͺ…
    100 Continue
    101 Swiching protocols

성곡 (2xx)

  • μ„œλ²„κ°€ μš”μ²­μ„ μ„±κ³΅μ μœΌλ‘œ λ°›μ•˜μŒμ„ μ•Œλ €μ€€λ‹€.

    Status Code μ„€λͺ…
    200 Ok!
    201 Created
    202 Accepted
    203 Non-authoritative Information
    204 No Cotent

λ¦¬λ‹€μ΄λ ‰μ…˜ (3xx)

  • μš”μ²­ μ™„λ£Œλ₯Ό μœ„ν•΄ μΆ”κ°€ μž‘μ—… μ‘°μΉ˜κ°€ ν•„μš”ν•˜λ‹€

    Status Code μ„€λͺ…
    301 Moved permanently
    302 Not temporarily
    303 Not modified

ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­ 였λ₯˜ (4xx)

  • ν΄λΌμ΄μ–Έμ—μ„œ μ„œλ²„μ— 잘λͺ»λœ μš”μ²­μ„ 보내 μ„œλ²„κ°€ μš”μ²­μ„ ν•΄κ²° ν•  수 μ—†μ„λ•Œ λ°œμƒν•˜λŠ” μ½”λ“œμ΄λ©°, ν΄λΌμ΄μ–ΈνŠΈμΈ‘μ—μ„œ λ°œμƒν•˜λŠ” μ½”λ“œμ΄λ‹€.

    Status Code μ„€λͺ…
    400 Bad Request
    401 Unauthorized
    402 Payment required
    403 Forbidden
    404 Not found
    405 Method not allowed
    407 Proxy authentication required
    408 Request timeout
    410 Gone
    412 Precondition failed
    414 Request-URI too long

μ„œλ²„μ—λŸ¬ (5xx)

  • ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ λ°›κ³  μ„œλ²„μ—μ„œ μ²˜λ¦¬ν•˜μ§€ λͺ»ν• λ•Œ λ°œμƒν•˜λŠ” μ½”λ“œμ΄λ©°, μ„œλ²„μΈ‘μ—μ„œ λ°œμƒν•˜λŠ” μ½”λ“œμ΄λ‹€.

    Status Code μ„€λͺ…
    500 Internal server error
    501 Not implemented
    503 Service unnailable
    504 Gateway timeout
    505 HTTP version not supported

πŸ“š μ°Έκ³ 

HTTP νŠΉμ§•

HTTP Method 1

HTTP Method 2

HTTP λ™μž‘ & λ©”μ„œλ“œ & μƒνƒœμ½”λ“œ



Summary



⁉️ λ©΄μ ‘ μ˜ˆμƒ 질문

  1. GETκ³Ό POST의 차이점에 λŒ€ν•΄μ„œ μ„€λͺ…ν•˜μ‹œμ˜€.
  1. μ‘°νšŒν•˜κΈ° μœ„ν•œ μš©λ„λ‘œ POSTκ°€ μ•„λ‹Œ GET 방식을 μ‚¬μš©ν•˜λŠ” μ΄μœ μ— λŒ€ν•΄μ„œ μ„€λͺ…ν•˜μ‹œμ˜€.
  1. PUT λ©”μ„œλ“œμ™€ PATCH λ©”μ„œλ“œμ˜ 차이점에 λŒ€ν•΄ μ„€λͺ…ν•˜μ‹œμ˜€.
  1. HTTP Statue Code(HTTP μƒνƒœ μ½”λ“œ) 의 μ’…λ₯˜μ— λŒ€ν•΄ μ„€λͺ…ν•˜μ‹œμ˜€.