HTTP(HyperText Transfer Protocol)란?
- 데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나가 HTTP
- 전 세계에서 제일 널리 쓰이는 통신 규약
- 통신 규약이란 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속

- HTTP에서는 언제나 Request, Response라는 개념이 존재
<HTTP 구성 요소>
- Method (호출/요청 방식)
GET: 이름 그대로 어떤 리소스를 얻을 때 사용된다. 브라우저의 주소창에 URL을 입력하면 GET 메서드를 사용해서 서버에 요청을 보낸다.
POST: 웹 서버에 데이터를 게시할 때 사용하는게 일반적이다. (ex. 회원가입, 게시글 작성, 댓글 작성)
- Header (추가 데이터. 메타 데이터)
- 브라우저가 어떤 페이지를 원하는지
- 요청 받은 페이지를 찾았는지
- 요청 받은 데이터를 성공적으로 찾았는지
- 어떤 형식으로 데이터를 보낼지 이러한 사례 외에도 아주 다양한 의사 표현을 위한 데이터를 모두 Header필드에 넣고 주고 받습니다. 위에서 설명 된 메서드도 사실은 헤더에 포함되어 서버로 보내진다
- Payload (데이터. 실제 데이터)
- 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있다.
- 클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있다. 그리고 "GET method를 제외하곤 모두 Payload를 보낼 수 있다" 는게 HTTP에서의 약속이다.
웹 서버란?
- 웹 서버는 인터넷을 통해 HTTP를 이용하여 웹상의 클라이언트의 요청을 응답해주는 통신을 하는 일종의 컴퓨터
웹 서버의 기본 동작 원리
- 브라우저를 통해 HTTP request로 웹사이트를 웹서버에 요청한다. 이후 웹서버는 요청을 승인하고 HTTP response를 통해 웹사이트 데이터를 브라우저에 전송한다. 마지막으로 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려내는 일을 한다.
- 기본적으로 브라우저가 웹서버에 요청을 할때는 항상 GET method로 요청하게 된다.