http의 이해
데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나가 HTTP.
(통신 규약: Protocol)
매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약입니다.
통신 규약이란, 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속을 의미합니다.
HTTP라는 통신 규약을 이용하여, 서버나 클라이언트(브라우저)끼리 의사 소통을 할 수 있게 됨.
의사 표현의 수단: (현실 세상) 말 ↔ (디지털 세상) 네트워크
의사 표현의 방법: (현실 세상) 언어 ↔ (디지털 세상) 통신 규약
HTTP로 데이터를 주고 받는 방법
- HTTP에서는 언제나 Request, Response라는 개념이 존재.
- 서버와 브라우저의 관계로 설명하자면 아래와 같이 동작합니다.
- 브라우저는 서버에게 자신이 원하는 페이지(URL 등의 정보)를 요구(Request)합니다.
- 서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지에 대한 데이터를 반환(Response)해줍니다. 없다면 없는 페이지에 대한 데이터를 반환합니다.
(일반적인 웹 서버 기준)
- 브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려줍니다.
- 그리고 위와 같은 사례에서 "데이터"는 어떠한 데이터든 주고 받는게 가능합니다.
HTTP 구성 요소
- Method 설명
-
GET: 이름 그대로 어떤 리소스를 "얻을 때" 사용됩니다.
그리고 브라우저는 기본적으로 여러분이 웹 서핑을 한다고 가정하므로 모든 요청은 "GET" 메서드를 사용해서 서버에 요청을 보냅니다.
-
POST: 웹 서버에 데이터를 "게시"할 때 사용하는게 일반적입니다.
(ex. 회원가입, 게시글 작성, 댓글 작성)
- Header 설명 (추가 데이터. 메타 데이터)
- 브라우저가 어떤 페이지를 원하는지
- 요청 받은 페이지를 찾았는지
- 성공적으로 찾았는지
이러한 사례 외에도 아주 다양한 의사 표현을 위한 데이터를 모두 Header 필드에 넣고 주고 받는다.
위에서 설명 된 메서드도 사실은 헤더에 포함되어 서버로 보내진다.
- Payload 설명 (데이터. 실질적인 데이터)
- 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있습니다.
- 클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있습니다.
그리고 "GET
method를 제외하곤 모두 Payload를 보낼 수 있다" 는게 HTTP에서의 약속입니다.
- 추가적으로 DELETE method에서 Payload를 보낼수있지만, 보통 많은 경우에 Payload를 보내지않고있습니다.
웹 서버
웹서버는 인터넷을 통해 HTTP를 이용하여 웹상에서 클라이언트의 요청을 응답해주는 통신을 하는 컴퓨터 또는 프로그램
웹 서버의 기본 동작 원리
- 브라우저를 통해 HTTP request로 웹사이트를 웹서버에 요청합니다. 이후 웹서버는 요청을 승인하고 HTTP response를 통해 웹사이트 데이터를 브라우저에 전송합니다. 마지막으로 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려내는 일을 합니다.
- 기본적으로 브라우저가 웹서버에 요청을 할때는 항상 GET method로 요청하게 됩니다.
+++ 더 찾아보기
웹 서버 (Web Server)와 웹 어플리케이션 서버(WAS)는 어떤 차이점이 있을까요?
HTTP와 HTTPS의 차이점은 무엇일까요?