HTTP(Hypertext Transfer Protocol) 는 웹 브라우저(클라이언트)가 서버와 통신할 때 지켜야 하는 일종의 '규칙(프로토콜)'입니다.
개인적으로 이렇게 원론적인 들으면 와닫지가 않더라고요.
아래에 일상생활과 HTTP에 연관성을 간략하게 정리해보았습니다.
"인터넷창(웹 브라우저)을 켜고 하는 모든 행위"와 "스마트폰 앱이 데이터를 주고받는 모든 과정"에 HTTP가 사용됩니다.

네이버, 구글, 유튜브 등 우리가 크롬, 사파리, 웨일 같은 브라우저 주소창에 URL을 입력하고 검색 버튼을 누르는 순간 HTTP 통신이 시작됩니다.
웹페이지 조회: 브라우저가 서버에 "네이버 메인 화면(HTML, CSS, JS) 좀 줘" 하고 HTTP GET 요청을 보냅니다.
로그인 및 회원가입: 아이디와 비밀번호를 입력하고 버튼을 누르면, 서버로 계정 정보를 안전하게 보내기 위해 HTTP POST 요청을 보냅니다.
인터넷창을 켜지 않고 배달의민족, 인스타그램, 카카오톡 같은 '앱'을 쓸 때도 내부적으로는 전부 HTTP를 씁니다.
배달 앱: "내 주변 치킨집 목록 보여줘" 하고 서버에 요청하면, 서버가 치킨집 이름, 리뷰, 이미지 주소 등이 담긴 JSON 데이터를 HTTP 응답으로 보내줍니다. 앱은 그 데이터를 받아서 우리 화면에 예쁘게 그려주는 역할만 합니다.
SNS 앱: 인스타그램에서 피드를 아래로 당겨서 새로고침할 때, 새로운 사진 데이터를 HTTP 통신으로 긁어옵니다.

HTTP는 요청(Request)과 응답(Response)이라는 단순한 구조로 작동합니다. 클라이언트가 먼저 행동(요청)을 취해야만 서버가 그에 따른 결과(응답)를 돌려주는 방식입니다.
클라이언트가 서버에게 "이 작업을 처리해 줘"라고 요구할 때 사용됩니다. 요청 메시지는 크게 다음과 같은 요소로 구성됩니다.
서버가 클라이언트의 요청을 처리한 후 결과를 돌려줄 때 사용됩니다. 응답 메시지는 다음과 같이 구성됩니다.
200 (성공)404 (찾을 수 없음 - 잘못된 주소)500 (서버 내부 오류)
HTTP는 다양한 메서드를 지원합니다. 가장 많이 쓰이는 핵심 메서드 5가지를 CRUD 개념으로 분류해 정리해보았습니다.
- POST : 데이터 생성
- 서버에 새로운 리소스를 등록하거나 제출할 때 사용합니다.
- 회원가입, 글쓰기 등이 대표적이며, 저장할 데이터를 본문(Body)에 숨겨서 안전하게 전송합니다.
- GET : 데이터 조회
- 서버로부터 특정 리소스(웹페이지, 이미지, 데이터 등)를 가져올 때 사용합니다.
- 본문(Body)을 비워두는 것이 일반적이며, 필요한 데이터는 URL 뒤에 붙여서 보냅니다.
- PUT : 데이터 전체 수정
- 서버의 기존 리소스를 새로운 데이터로 통째로 교체(수정)할 때 사용합니다.
- 만약 요청한 위치에 데이터가 없다면 새로운 리소스를 생성하기도 합니다.
- PATCH : 데이터 일부 수정
- 리소스의 전체가 아니라 특정 일부분만 수정할 때 사용합니다.
- 회원의 비밀번호만 변경하거나, 글의 제목만 바꿀 때 PUT 대신 PATCH를 쓰는 것이 권장됩니다.
- DELETE : 데이터 삭제
- 서버에 존재하는 특정 리소스를 삭제할 때 사용합니다.