HTTP는 컴퓨터(클라이언트)와 서버간의 네트워크 통신을 하기 위한 규약(프로토콜)중의 하나입니다. 웹 브라우저에서 사용하여 유명해졌고, 요즘은 그 용도가 더 다양해지고 있습니다.
HTTP로 데이터가 서버로 전달될 때, method(verb 라고도 불림)라는 속성을 반드시 가지게 되는데, method는 데이터를 보내는 목적을 표시해주는 역할을 하고, 같은 데이터가 전달되더라도 method가 다르면 데이터를 전달받은 서버는 method에 따라 데이터를 다르게 처리합니다.
HTTP method는 종류가 많지만 이 게시물에서는 그 중에 자주 쓰이는 GET, POST, PUT, DELETE를 알아보겠습니다.
참고로 아래 내용에서 자주 사용될 resource라는 단어는 웝페이지(html), binary data(그림파일, 소리파일 등), db data(json/xml/혹은 html로 render된 data)등 서버가 제공할 수 있는 데이터를 뜻합니다.
서버에게 resource를 보내달라고 요청할 때 사용합니다. 서버(혹은 DB)의 resource는 클라이언트로 전달만 될 뿐 변경되지 않습니다.
예를 들어 웹브라우저에 http://example.com/exmaple.png 를 입력하면 해당 그림 파일이 표시되고, http://example.com/something 을 입력하면 서버가 해당 페이지를 찾아 보여줍니다. 참고로 웹브라우저 주소창에 주소를 입력하는 행위는 항상 get인식됩니다.
서버에게 resource를 보내면서 해당 resource를 DB혹은 서버에 저장해달라고 요청할 때 사용합니다. 예를들어 회원가입을 하면 DB에 새로운 회원정보가 등록되고, 사진을 업로드 하면 그 사진이 웹사이트에 등록되는데 이러한 요청은 post를 통해 이루어 집니다.
서버에게 resource의 업데이트를 요청할 때 사용됩니다. 회원정보 수정, 작성된 게시물의 수정 등의 요청에 사용됩니다.
DB, 서버에 존재하는 resource의 삭제를 요청할 때 사용됩니다.
서버가 HTTP methods를 어떤식으로 처리할지는 전적으로 서버 프로그래머에 달려있습니다. 즉 POST를 받으면 데이터를 지우고, DELETE을 받으면 데이터를 생성하는 서버를 만들 수도 있습니다. 이는 HTTP methods들이 시스템상의 제약으로 각각의 기능이 나누어 지는 것이 아니라, 단지 사람의 이해를 돕기 위해 구별하기 위한 용도이기 때문입니다. 실제로 많은 서버들이 GET(정보 읽기)과 POST(그 외의 모든 처리)로만 요청을 처리하기도 합니다.
요즘은 각각 기능에 맞게 서버를 프로그래밍하는 추세이므로 여러분들은 알맞은 method를 사용하시기 바랍니다.
**이 게시물은 2019년 6월에 수정되었습니다. 전체적인 내용 수정과 함께 PATCH 항목을 지웠습니다. PATCH는 PUT과 마찬가지로 서버의 resource를 수정하는데 사용되지만, 사용법이 까다롭고 논란이 있기 때문에 많은 사람들이 사용하지 않습니다. MEAN Stack 강의 시리즈에서도 PATCH는 사용하지 않습니다. 오히려 혼란을 주는 것 같아 해당 내용을 삭제하였습니다.
댓글
이 글에 댓글을 다시려면 SNS 계정으로 로그인하세요. 자세히 알아보기