HTTP νλ‘ν μ½μ΄λ?
HTTP νλ‘ν μ½μ΄λ "HyperText Transfer Protocol"μ μ€μλ§λ‘ μΉμμ λ°μ΄ν°λ₯Ό κ΅ννκΈ° μν κ·μ½ λλ νλ‘ν μ½μ λλ€. ν΄λΌμ΄μΈνΈμ μλ² κ°μ νμ΄νΌ λ¬Έμλ₯Ό μ£Όκ³ λ°λ λ° μ¬μ©μ΄ λλλ°μ! μ΄λ, ν΄λΌμ΄μΈνΈλ μΉμ¬μ΄νΈλ₯Ό, μλ²λ μλ² μ»΄ν¨ν°λΌκ³ μκ°νμλ©΄ λΌμ! ν΄λΌμ΄μΈνΈκ° μλ²μκ² λ°μ΄ν°λ₯Ό μμ²νλ©΄, μλ²κ° ν΄λΌμ΄μΈνΈμκ² μλ΅μ νλ μμ²/μλ΅ ννλ‘ λ°μ΄ν° μ λ¬μ΄ μ΄λ£¨μ΄μ Έμ. λν HTTPλ μ΄λ―Έμ§, μμ, μμ±, νμΌ JSON λ± λͺ¨λ ννμ λ°μ΄ν°λ₯Ό ν΅μ ν μ μμ΅λλ€.
HTTPλ κΈ°λ³Έμ μΌλ‘ λΉμ°κ²°μ±μ κ°μ§λλ€. λΉμ°κ²°μ±μ΄λΌλ κ²μ μ μ 보λλ λ°μ΄ν°μ νμ 보λλ λ°μ΄ν° κ°μ μ°κ΄μ±μ΄ μ ν μλ€λ κ²μ΄μμ! κ° μμ²λ§λ€ λ°μ΄ν°κ° λ 립μ μΌλ‘ μ²λ¦¬λκΈ° λλ¬Έμ ν¨μ¨μ μ΄κ³ λ¨μνκ² ν΅μ μ΄ κ°λ₯ν΄μ!
λν HTTPλ TCP/IPμ νλ‘ν μ½ μ€μνΈμ μμ κ³μΈ΅μμ μλν©λλ€.
TCP/IP μ΄λ?
Transmission Control Protocol/Internet Protocolμ μ€μλ§λ‘ μΈν°λ·μμ λ°μ΄ν°λ₯Ό μμ νκ³ μ€λ₯μμ΄ μ μ‘νλλ‘ νλ κΈ°λ³Έ νλ‘ν μ½ μ€μνΈμ λλ€.
HTTP νλ‘ν μ½μμμ TCP/IP κ³μΈ΅ ꡬ쑰
- L4 Application Layer ( μμ© κ³μΈ΅ )
: μμ© κ³μΈ΅μ μ¬μ©μκ° μΈν°λ·μ ν΅ν΄ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλλ‘ HTTP νλ‘ν μ½μ μ¬μ©νμ¬ λ€νΈμν¬ μλΉμ€μ μ§μ μ κ·Όν μ μλλ‘ ν΄μ€λλ€.
ex) νΈμ§μ§μ νΈμ§λ₯Ό μ λ νμ
- L3 Transport Layer ( μ μ‘ κ³μΈ΅ )
: μ΄ κ³μΈ΅μ μ λ’°μ±μλ λ°μ΄ν° μ μ‘μ 보μ₯ν©λλ€. TCP νλ‘ν μ½μ μ¬μ©ν΄ λ©μΈμ§λ₯Ό μͺΌκ°κ±°λ portλ₯Ό λΆμ¬μ€λλ€.
ex) νΈμ§λ₯Ό λλκ±°λ νΈμ§ λ΄ν¬μ λ΄λ νμ
- L2 Internet Layer ( μΈν°λ· κ³μΈ΅ )
: μ΄ κ³μΈ΅μ μ£Όμ λͺ©νλ λ°μ΄ν° ν¨ν·μ μΆλ°μ§μμ λͺ©μ μ§λ‘ λΌμ°ν νλ κ²μ λλ€. μ΄λ ν¨ν·μ μ λ¬κ³Ό λΌμ°ν μ IP νλ‘ν μ½μ΄ λ΄λΉν©λλ€.
ex) νΈμ§ λ΄ν¬μ λ΄κΈ΄ νΈμ§μ μ£Όμμ§λ₯Ό μ λ νμ
- L1 Link Layer ( λ§ν¬ κ³μΈ΅ )
: λ°μ΄ν°λ₯Ό λ€νΈμν¬ μ₯λΉ κ°μ μ λ¬νλ μν μ ν©λλ€. μ ννλ Mac μ£Όμλ₯Ό μΆκ°ν΄ λͺ©μ μ§λ‘ 보λ΄λ μν μ νλλ°μ. μ΄ κ³μΈ΅μ λ°μ΄ν°λ₯Ό νλ μ ννλ‘ κ΅¬μ±νμ¬ μ μ‘ν©λλ€.
ex) νΈμ§λ₯Ό 보λ.
μ΄μ¨λ TCP/IP μ ν΅μ κ³Όμ μ μμ΄μ HTTP νλ‘ν μ½μ μ¬μ©ν HTTP μμ² λ©μμ§λ μμ©κ³μΈ΅μμ 보λ΄μ§λ€λ κ²μ λλ€! μ΄ λ, HTTP μμ²μλ λ€μν λ©μλκ° μ‘΄μ¬νλλ°μ! ν¨κ» μμλ΄ μλ€.
HTTPμ μμ² λ©μλ μ’ λ₯
- GET ( READ ) : 리μμ€λ₯Ό μ‘°νν λ μ¬μ©
- POST ( CREATE ) : μλ‘μ΄ λ¦¬μμ€λ₯Ό μμ±ν λ μ¬μ©
- PUT ( UPDATA ) : κΈ°μ‘΄μ 리μμ€λ₯Ό λ체νκ±°λ μλ‘μ΄ λ¦¬μμ€λ₯Ό μμ±ν λ μ¬μ© ( μ μ²΄κ° λ³κ²½ )
- DELETE : 리μμ€λ₯Ό μμ ν λ μ¬μ©
- PATCH : 리μμ€μ μΌλΆλ₯Ό μμ ν λ μ¬μ© ( μΌλΆλ§ λ³κ²½ )
- HEAD : 리μμ€μ ν€λ μ λ³΄λ§ μ‘°νν λ μ¬μ©
- OPTIONS : λμ 리μμ€μ λν ν΅μ κ°λ₯ μ΅μ μ μ€λͺ ν λ μ¬μ©
- TRACE : ν΄λΌμ΄μΈνΈμκ² μμ² λ©μμ§κ° μλ²μ λλ¬νμ λ, μ΄λ»κ² μ²λ¦¬λλμ§λ₯Ό μλ €μ€
- CONNECT : ν΄λΌμ΄μΈνΈκ° μνλ μλ²λ‘μ ν°λμ μ€λͺ ν λ μ¬μ©
- LINK : μ΄λ―Έ μ‘΄μ¬νλ λ 리μμ€ μ¬μ΄λ₯Ό μ°κ²°ν λ μ¬μ©
- UNLINK : LINK λ©μλλ‘ λ§λ€μ΄μ§ 리μμ€ μ¬μ΄μ μ°κ²°μ μ κ±°ν λ μ¬μ©
μ΄ μ€μμ κ°μ₯ λ§μ΄ μ¬μ©νλ κ²μ GET, POST, PUT, DELETEμ λλ€. μ΄λ₯Ό ν΅νμ΄μ CRUD λ©μλλΌκ³ λΆλ¦ λλ€!
HTTP νλ‘ν μ½ μλ΅ μν μ½λ
2XX ( μ±κ³΅ )
- 200 OK
- 201 Created
- 202 Accepted
- 204 No Content
3XX ( 리λ€μ΄λ μ )
- 300 Multiple Choices
- 301 Moved Permanently
- 302 Found
- 303 See Other
- 304 Not Modified
- 307 Temporary Redirect
- 308 Permanent Redirect
4XX ( ν΄λΌμ΄μΈνΈ μλ¬ )
- 400 Band Request
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found
- 409 Conflict
5XX ( μλ² μλ¬ )
- 500 Internal Server Error
- 501 Not Implemented
- 503 Service Unavailble