웹 브라우저와 웹 서버가 데이터를 주고받는 데 사용하는 통신 규약
클라이언트와 서버 간의 요청과 응답을 통해 작동한다.
다양한 종류의 데이터를 전송할 수 있도록 설계된 프로토콜로 웹 페이지에
포함된 각 구성 요소는 대부분 개별적인 HTTP 요청을 통해 서버로부터 요청된다.
따라서 가끔 글이 먼저 보이고 이미지가 나중에 보일 때가 있는 것이다.
일반적으로 TCP/IP 통신 프로토콜 기반으로 동작하며 HTTP를 통해 전달되는 자료는 http: 시작되는 URL로 조회할 수 있으며 사용하는 포트는 80번이다.
데이터를 주고 받기 위해 행해지는 각각의 데이터 요청이 서로 독립적으로 관리된다는 의미로 이전 데이터 요청과 다음 데이터 요청이 서로 관련이
없다는 것이다.
단방향성 : 하나의 요청에 하나의 응답을 하는 방식으로 동작
구글 웹사이트에 접근하고 싶다고 가정해보자. 구글 사이트가 내 화면에 표시되기 위해서는 다음 단계의 과정들이 수행되는 것이다.
1) 사용자가 웹 브라우저의 주소 창에 http://www.google.com을 입력한다.
2) 브라우저는 입력된 도메인 이름(www.google.com)을 IP 주소로 변환하기 위해 DNS(Domain Name System) 서버에 요청을 보낸다. DNS 서버는 해당 도메인의 IP 주소로 응답한다.
3. 브라우저는 받은 IP 주소를 통해 구글 서버와 TCP 연결을 설정.
4. TCP 연결이 설정되면 브라우저는 HTTP 요청 메시지를 구글 서버에 보낸다.
클라이언트가 서버에 요청을 보낼 때 사용되는 명령어
1. 안정성(Safe)
GET : 몇 번을 조회하더라도 같은 결과가 조회(회원 정보를 여러 번 조회한다고 정보가 달라지지 않는다.)
PUT : 결과를 대체한다. 따라서 같은 요청을 여러 번 해도 최종 결과는 같다.
DELETE : 결과를 삭제한다. 같은 요청을 여러 번 해도 삭제된 결과는 같다.
POST : 멱등이 아니다. 두 번 호출하면 에러가 발생할 수 있다. => POST로 주문을 두 번 호출하면 결제가 중복될 수 있다.