HTTP 메세지는 서버와 클라이언트 간에 데이터를 주고받는 방식이다.
HTTP/1.1의 경우 요청과 응답은 Start/Status line, Header, Body로 이루어져 있다.
요청은 클라이언트가 서버로 특정 데이터를 받아올 수 있게끔 보내는 메세지이다.
요청 메세지는 아래와 같이 구성되어 있다.
특정 리소스를 가져오도록 요청하는 메서드이다. GET 요청은 데이터를 가져올 때만 사용한다.
CRUD의 개념으로 생각하면 Read에 속한다.
URL 뒤에 데이터를 붙여 보낸다.
www.example.com/upper
서버로 리소스를 제출하는 메서드로 서버 상태의 변화를 일으킨다. 주로 새로운 리소스 생성(create) 할 때 사용된다.
URL에 붙여 쓰는 방식이 아닌 BODY에다 리소스를 넣어서 보낸다.
POST와 비슷하지만 연속적인 요청시에도 같은 효과를 가져온다. 기존 데이터를 교체하는 용도로 쓰인다.(update)
리소스의 부분적인 수정(update)을 할 때에 사용된다.
지정한 리소스를 삭제(delete) 요청할 때 사용한다.
CORS에서 OPTIONS 메소드로 사전 요청을 보내 서버가 해당 parameters를 포함한 요청을 보내도 되는지에 대한 응답을 줄 수 있게 한다.
mdn에 따르면 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일한 것을 멱등성을 가진다고 말한다.
예를 들어, DELETE로 서버의 유저1 정보를 지우는 요청을 보낸다고 하면, 처음 요청을 보냈을 때 유저1 정보가 삭제된다. 서버에서는 이미 유저1의 정보가 삭제되었기 때문에 유저1 삭제 요청을 또 보낸다고 아무런 영향을 끼치지 않는다.
GET, HEAD, PUT, DELETE 메서드는 멱등성을 가지는 메서드이다. POST는 멱등성의 특징을 가지지 않는다.
요청에 대한 서버의 답변이다.
http 응답 상태코드는 요청에 대한 응답이 성공적으로 되었는지 알려준다.
자주 쓰이는 200, 400, 500번대는 자주 봐서 익혀두면 코드짤 때 편하다.
응답 헤더 안에 있는 Content-Type은 클라이언트한테 전달되는 데이터 유형을 알려준다.
Content-Type은 MIME 타입으로 표기된다.
📌 MIME(Multipurpose Internet Mail Extension) 타입이란?
클라이언트에게 전송된 문서의 다양성을 알려주기 위한 메커니즘입니다. 웹에서 파일의 확장자는 별 의미가 없습니다. 그러므로, 각 문서와 함께 올바른 MIME 타입을 전송하도록, 서버가 정확히 설정하는 것이 중요합니다. 브라우저들은 리소스를 내려받았을 때 해야 할 기본 동작이 무엇인지를 결정하기 위해 대게 MIME 타입을 사용합니다.
출처:MDN
Content-Type에 쓰이는 대표적인 MIME 타입들