Hypertext Transfer Protocol
의 약자로 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. 쉽게 말해 웹 상에서 통신을 할 때 어떤 형식으로 통식을 하자고 정해놓은 약속입니다.
HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 이때 클라이언트-서버 프로토콜이란 수신자 측에 의해 요청이 초기화되는 프로토콜을 의미합니다.
수행할 작업의 종류를 나타내기 위해 서버에 보내는 메세지이다. 브라우저와 서버 간의 통신이 더 풍부해진다.
메소드 | 설명 |
---|---|
GET | 어떠한 데이터를 서버로부터 받아올 때 사용한다. |
POST | 일반적으로 무언가를 생성하기 위해 서버에 데이터 블록을 수락하도록 요청한다. |
PUT | 데이터를 업데이트할 때 사용한다. |
DELETE | 데이터를 서버에서 삭제할 때 사용한다. |
URL 매개변수를 사용하여 서버에 데이터를 요청한다.
웹에서 가장 일반적으로 사용되는 HTTP 방법이다.
GET 요청 매개변수는 이름-값 쌍으로 형식이 지정된다.
리소스를 변경하기 위해 서버에 데이터를 보낸다.(ex) 데이터베이스 레코드)
데이터가 전송될 때 사용자가 볼 수 없는 요청 본문으로 전송된다.
{
"username": "Mike"
"email": "mike@naver.com"
}
// 이메일 변경하는 올바른 방법
// PUT 사용
// PUT /user/1
{
"username": "Mike"
"email": "mike@naver.com"
}
// PATCH 사용
// PATCH /user/1
{
"email": "mike@naver.com"
}
// 잘못된 방법
// PUT /user/1
{
"email": "mike@naver.com"
}
// put method 사용시 email만 입력하는 경우 username은 null 처리
서버가 여러 요청 기간 동안 각 사용자에 대한 정보나 상태를 유지할 필요가 없다는 뜻으로 즉, 서버가 클라이언트의 이전 상태를 보존하지 않는다는 의미이다. 이는 각 요청에 대한 연결을 재설정하는데 소요되는 시간/대역폭을 최소화하기 위함이다.
반대 개념으로는 stateful이 있다.