REST over HTTP
κ±°μ λͺ¨λ REST μ λν νμ©μ HTTP Protocol μ κΈ°λ°μΌλ‘ νλ€. CRUD μμ μ μννκΈ° μνμ¬ HTTP μ λ€μ HTTP Method λ€μ νμ©νλ€.
| HTTP λ©μλ | μ€λͺ |
|---|---|
| POST | Create a new entity |
| GET | Read a list of entities or single entity |
| PUT | Update an existing entity |
| PATCH | Partially update an existing entity |
| DELETE | Delete an existing entity |
HTTP Messages
Client μ Server κ°μ λ°μ΄ν° κ΅νμ μνμ¬ HTTP Message λ₯Ό μ¬μ©νλ€.

Cient μΈ CRM(Customer Relationship Management) App μ΄ HTTP Request Message λ₯Ό ν΅νμ¬ μμ²νλ©΄, CRM REST Service μΈ Server λ μ΄μ ν΄λΉνλ HTTP Response Message λ₯Ό ν΅νμ¬ μλ΅νλ€.
HTTP Request Message
μ°μ Request Message μ ꡬ쑰λΆν° μ΄ν΄λ³΄μ.

Request Line μ HTTP Method λ₯Ό ν¬ν¨ν HTTP command λ₯Ό define νλ€. μ¦, request μ λͺ©μ μ define νλ κ²μ΄λ€.
Header Variables μμλ request μ λν metadata, μ¦ λΆκ° μ 보λ₯Ό ν¬ν¨νκ³ μλ€.
Message Body μλ request data κ° ν¬ν¨λλ€. JSON νμμΌλ‘ μ΄λ£¨μ΄μ Έ μλ€.
HTTP Response Message
μ΄λ²μλ HTTP Response Message μ λνμ¬ μ΄ν΄λ³΄μ.

Response Line μ server protocol κ³Ό 200, 404, 503 λ±κ³Ό κ°μ status code λ₯Ό ν¬ν¨νλ€. Status Code μ λν λ΄μ©μ μλμ κ°λ€.
| μν μ½λ | λΆλ₯ | μ€λͺ |
|---|---|---|
| 1xx | Informational | μμ²μ μμ νμΌλ©° μ²λ¦¬κ° μ§ν μ€μμ λνλ |
| 2xx | Successful | μμ²μ΄ μ±κ³΅μ μΌλ‘ μ²λ¦¬λ¨ |
| 3xx | Redirection | μμ² μλ£λ₯Ό μν΄ μΆκ° μμ μ΄ νμν¨ |
| 4xx | Client Error | ν΄λΌμ΄μΈνΈμ μμ²μ λ¬Έμ κ° μμ΄ μ²λ¦¬ν μ μμ |
| 5xx | Server Error | μλ²κ° μ ν¨ν μμ²μ μ²λ¦¬νμ§ λͺ»ν¨ |
Header Variables λ response μ λν metadata λ₯Ό ν¬ν¨νλ€. Content Type, Content Length λ±μ μ 보λ₯Ό ν¬ν¨νλ€.
Message Body μμλ request μ λν μ€μ data(HTML, JSON, XML λ±)λ₯Ό ν¬ν¨νλ€.
MIME Content Types
MIME(Multipurpose Internet Mail-Extenstion) μ μΈν°λ·μμ μ μ‘λλ λ°μ΄ν°μ νμμ λνλ΄λ νμ€ λ°©μμΌλ‘, Client(λΈλΌμ°μ ) μ Server κ° λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λ°©μμ κ²°μ νλ€. HTTP ν΅μ μμ μ£Όλ‘Β Content-TypeΒ header μ μ¬μ©λλ©°, λ°μ΄ν°μ type κ³Ό subtype μ λͺ
μνλ€.
κΈ°λ³Έμ μΈ syntax λ type/sub-type μΌλ‘ μ¬μ©νλ©°, text/html, text/plain λ±μ λ°©μμΌλ‘ μ¬μ©νλ€.
| type | subtype | μ€λͺ |
|---|---|---|
| text | plain,Β html,Β css | ν μ€νΈ λ°μ΄ν° (μ: μΌλ° ν μ€νΈ, HTML λ¬Έμ) |
| image | jpeg,Β png,Β gif | μ΄λ―Έμ§ νμΌ |
| audio | mpeg,Β wav,Β webm | μ€λμ€ νμΌ |
| video | mp4,Β webm,Β ogg | λΉλμ€ νμΌ |
| application | json,Β pdf,Β zip | λ°μ΄λ리 λ°μ΄ν° λλ νΉμ μ ν리μΌμ΄μ νμΌ |
| multipart | form-data,Β mixed | μ¬λ¬ νμΌ λλ λ°μ΄ν° μ‘°κ°μ ν¨κ» μ μ‘ |
MIME Types λ Server μ Client κ°μ λ°μ΄ν° κ΅νμμ λ°μ΄ν°μ νμμ λͺ νν μ§μ νκΈ° λλ¬Έμ, λΈλΌμ°μ κ° λ°μ΄ν°λ₯Ό μ²λ¦¬νκ±°λ λ€μ΄λ‘λν λ ν΄λΉ λ°μ΄ν°λ₯Ό μ¬λ°λ₯΄κ² ν΄μνκ³ μ²λ¦¬ν μ μλλ‘ λλλ€.
Client Tool
Client μ HTTP request μ Server μ HTTP response λ₯Ό test νκΈ° μνμ¬ λ¨μν browser λ₯Ό μ¬μ©ν μ μμ§λ§, Postman, curl λ±μ Client Tool μ μ΄μ©ν μ μλ€.