Computer Science

[λ„€νŠΈμ›Œν¬] HTTP κ°œλ…/ νŠΉμ„± / λ©”μ†Œλ“œ / μƒνƒœμ½”λ“œ

rmsidgkrl 2020. 10. 24. 08:00
728x90
λ°˜μ‘ν˜•

πŸ’« HTTPλž€? 

πŸ‘‰ HTTP(Hyper Text Transfer Protocol)λŠ” μΈν„°λ„·μ—μ„œ 데이터λ₯Ό μ£Όκ³  받을 수 μžˆλŠ” ν†΅μ‹ κ·œμ•½(ν”„λ‘œν† μ½œ!) HTTPλŠ” ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ 사이에 μ΄λ£¨μ–΄μ§€λŠ” μš”μ²­/응닡(request/response) ν”„λ‘œν† μ½œμ΄λ‹€.

 

πŸ’« HTTP νŠΉμ„±

πŸ‘‰ κ°€μž₯ λŒ€ν‘œμ μΈ νŠΉμ„±μ€ 2가지 λΉ„μ—°κ²°μ„±, λ¬΄μƒνƒœ

 

πŸ’¬ λΉ„μ—°κ²°μ„±(Connectionless) : ν΄λΌμ΄μ–ΈνŠΈ(λΈŒλΌμš°μ €)와 μ„œλ²„κ°€ μ—°κ²°λœ ν›„, ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ— λŒ€ν•΄ μ„œλ²„κ°€ 응닡을 마치면 연결을 λŠλŠ” νŠΉμ„±

πŸ’¬ λ¬΄μƒνƒœ(Stateless) : HTTP의 λΉ„μ—°κ²°μ„±μœΌλ‘œ 인해 μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό 식별할 수 μ—†λŠ” νŠΉμ„±. 각각의 μš”μ²­μ„ 독립적인 νŠΈλžœμž­μ…˜μœΌλ‘œ μ·¨κΈ‰

 

 

μž₯점

단점

λΉ„μ—°κ²°μ„±(Connectionless)

HTTPλŠ” 인터넷 μƒμ—μ„œ λΆˆνŠΉμ • λ‹€μˆ˜μ˜ 톡신 ν™˜κ²½μ„ 기반으둜 섀계됨. λ”°λΌμ„œ μ„œλ²„μ—μ„œ λ‹€μˆ˜μ˜ ν΄λΌμ΄μ–ΈνŠΈμ™€ 연결을 계속 μœ μ§€ν•΄μ•Ό ν•œλ‹€λ©΄, 이에 λ”°λ₯Έ λ§Žμ€ λ¦¬μ†ŒμŠ€κ°€ λ°œμƒν•¨. 연결을 μœ μ§€ν•˜κΈ° μœ„ν•œ λ¦¬μ†ŒμŠ€λ₯Ό 쀄이면 더 λ§Žμ€ μ—°κ²° κ°€λŠ₯

연결을 끊기 λ•Œλ¬Έμ—, ν΄λΌμ΄μ–ΈνŠΈμ˜ 이전 μƒνƒœλ₯Ό μ•Œ 수 μ—†μŒ. ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•  λ•Œλ§ˆλ‹€ 맀번 μƒˆλ‘œμš΄ 연결이 ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ— μ—°κ²° 및 ν•΄μ œμ— λŒ€ν•œ μ˜€λ²„ν—€λ“œκ°€ λ°œμƒ

λ¬΄μƒνƒœ(Stateless)

ν†΅μ‹ κ°„μ˜ μ—°κ²° μƒνƒœ μ²˜λ¦¬λ‚˜, μ •λ³΄μ˜ μ €μž₯을 관리할 ν•„μš”κ°€ μ—†μ–΄μ„œ μ„œλ²„ λ””μžμΈμ΄ 간단. 각각의 HTTPμš”μ²­μ— λ…λ¦½μ μœΌλ‘œ μ‘λ‹΅λ§Œ 보내주면 됨

HTTP μš”μ²­μ„ 보낼 λ•Œ λ§ˆλ‹€ ν•΄λ‹Ή μš”μ²­μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ λͺ¨λ“  데이터λ₯Ό 맀번 보내야 함 e.g.)둜그인 정보

 

πŸ’« HTTP λ©”μ†Œλ“œ(Method)

πŸ‘‰ ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ— μš”μ²­ν•  λ•Œ, μ–΄λ–€ λͺ©μ μ„ 가진 ν–‰μœ„μΈμ§€ λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ HTTP λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€.

 

 

πŸ’¬ HTTP Method 

  • GET(쑰회)

    • μ„œλ²„μ—κ²Œ λ¦¬μ†ŒμŠ€λ₯Ό λ‹¬λΌλŠ” μš”μ²­ 

  • HEAD

    • μ •ν™•νžˆ GETκ³Ό κ°™μ§€λ§Œ, μ„œλ²„λŠ” μ‘λ‹΅μœΌλ‘œ μ—”ν„°ν‹° λ³Έλ¬Έ λ°˜ν™˜μ—†μ΄ ν—€λ”λ§Œ λ°˜ν™˜

    • ν΄λΌμ΄μ–ΈνŠΈλŠ” λ¦¬μ†ŒμŠ€λ₯Ό κ°€μ Έμ˜¬ ν•„μš” 없이 ν—€λ”λ§Œμ„ 톡해 정보λ₯Ό μ–»μ–΄ μ˜¨λ‹€.

  • PUT(μˆ˜μ •)

    • μ„œλ²„κ°€ μš”μ²­μ˜ 본문을 κ°–κ³  μš”μ²­ URI의 μ΄λ¦„λŒ€λ‘œ μƒˆ λ¬Έμ„œλ₯Ό λ§Œλ“€κ±°λ‚˜, 이미 URIκ°€ μ‘΄μž¬ν•œλ‹€λ©΄ μš”μ²­ 본문을 λ³€κ²½ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. 

  • POST(μ‚½μž…)

    • μ„œλ²„μ— μž…λ ₯데이터λ₯Ό μ „μ†‘ν•˜λ©° μš”μ²­ μ—”ν‹°ν‹° 본문에 데이터λ₯Ό λ„£μ–΄ μ„œλ²„μ— 전솑

  • DELETE(μ‚­μ œ)

    • μ„œλ²„μ—μ„œ μš”μ²­ URI λ¦¬μ†ŒμŠ€λ₯Ό μ‚­μ œν•˜λ„λ‘ μš”μ²­

    • ν΄λΌμ΄μ–ΈνŠΈλŠ” 항상 μ‚­μ œλœλ‹€κ³  μƒκ°ν•˜μ§€λ§Œ, μ„œλ²„μ—μ„œλŠ” 이 μš”μ²­μ„ λ¬΄μ‹œν•  μˆ˜λ„ μžˆλ‹€.

  • OPTIONS

    • μ„œλ²„μ—κ²Œ νŠΉμ • λ¦¬μ†ŒμŠ€κ°€ μ–΄λ–€ λ©”μ†Œλ“œλ₯Ό μ§€μ›ν•˜λŠ”μ§€ λ¬Όμ–΄λ³΄λŠ” 것

 

πŸ’« 응닡 μƒνƒœ μ½”λ“œ

πŸ‘‰ ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ— μš”μ²­ν•˜λ©΄ μ„œλ²„λŠ” ν•΄λ‹Ή μš”μ²­μ— λŒ€ν•œ 처리 μƒνƒœλ₯Ό 숫자둜 λ°˜ν™˜ν•˜λŠ”λ° 이λ₯Ό μƒνƒœμ½”λ“œλΌκ³  ν•œλ‹€. 예λ₯Ό λ“€μ–΄, μ•„λž˜μ™€ 같이 μ›ΉνŽ˜μ΄μ§€λ₯Ό 찾을 수 μ—†λ‹€λŠ” λ‚΄μš©μ˜ 404 μ—λŸ¬μ½”λ“œκ°€ μƒνƒœμ½”λ“œμ΄λ‹€.

 

 

πŸ’¬ μƒνƒœμ½”λ“œ

λͺ¨λ“  HTTP 응닡 μ½”λ“œλŠ” 5개의 클래슀둜 ꡬ뢄. μƒνƒœ μ½”λ“œμ˜ 첫 번째 μˆ«μžλŠ” 응닡 클래슀λ₯Ό μ •μ˜ν•œλ‹€. μ²«μžλ¦¬μ— λŒ€ν•œ 5가지 값듀은 λ‹€μŒκ³Ό κ°™λ‹€πŸ‘‡ HTTP 응닡 μ½”λ“œλŠ” 약속이기 λ•Œλ¬Έμ— λͺ¨λ‘κ°€ 이해할 수 μžˆλŠ” μ˜¬λ°”λ₯Έ μ½”λ“œλ‘œ μ‘λ‹΅ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.

 

  • 1xx (정보): μš”μ²­μ„ λ°›μ•˜μœΌλ©° ν”„λ‘œμ„ΈμŠ€λ₯Ό κ³„μ†ν•œλ‹€

  • 2xx (성곡): μš”μ²­μ„ μ„±κ³΅μ μœΌλ‘œ λ°›μ•˜μœΌλ©° μΈμ‹ν–ˆκ³  μˆ˜μš©ν•˜μ˜€λ‹€

  • 3xx (λ¦¬λ‹€μ΄λ ‰μ…˜): μš”μ²­ μ™„λ£Œλ₯Ό μœ„ν•΄ μΆ”κ°€ μž‘μ—… μ‘°μΉ˜κ°€ ν•„μš”ν•˜λ‹€

  • 4xx (ν΄λΌμ΄μ–ΈνŠΈ 였λ₯˜): μš”μ²­μ˜ 문법이 잘λͺ»λ˜μ—ˆκ±°λ‚˜ μš”μ²­μ„ μ²˜λ¦¬ν•  수 μ—†λ‹€

  • 5xx (μ„œλ²„ 였λ₯˜): μ„œλ²„κ°€ λͺ…λ°±νžˆ μœ νš¨ν•œ μš”μ²­μ— λŒ€ν•΄ 좩쑱을 μ‹€νŒ¨ν–ˆλ‹€

 

 

HTTP μƒνƒœ μ½”λ“œ μ’…λ₯˜ μžμ„Ένžˆ 보기

 

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

λ²ˆμ—­μ΄ μ™„λ£Œλ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. Please help translate this article from English HTTP 응닡 μƒνƒœ μ½”λ“œλŠ” νŠΉμ • HTTP μš”μ²­μ΄ μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œλ˜μ—ˆλŠ”μ§€ μ•Œλ €μ€λ‹ˆλ‹€. 응닡은 5개의 그룹으둜 λ‚˜λˆ„μ–΄μ§‘λ‹ˆλ‹€: 정보λ₯Ό 제

developer.mozilla.org

 

 

 

λ°˜μ‘ν˜•