데이터를 주고 받는 양식을 정의한 "통신 규약(Protocol)"중 하나
매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약
통신규약이란? -> 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속
브라우저는 서버에게 자신이 원하는 페이지(URL 등의 정보)를 요구(Request)한다.
서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지에 대한 데이터를 반환(Response)해준다. 없다면 없는 페이지에 대한 데이터를 반환. (일반적인 웹 서버 기준)
브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려준다.
1) 개발자 도구와 네트워크 탭 열어보기
⌘
+ ⌥
+ i
를 누르면 아래와 같은 창이 뜬다.이 상태에서 새로고침 꾹
브라우저가 지금 페이지를 보여주기 위해 서버에서 받아온 데이터 목록이 나온다.
2) 네트워크(Network) 탭 맨 위의 페이지 데이터 클릭
3) Headers 탭 살펴보기
General
브라우저에서 서버로 보낸 Request 데이터라고 보면 된다.
Request Headers
이것도 브라우저에서 서버로 보낸 Request 데이터
Response Headers
서버가 웹 페이지 데이터와 함께 보낸 추가 데이터
4) Response 탭 살펴보기
서버에서 브라우저로 반환해준 웹 페이지를 그려주기 위한 데이터.
HTTP에는 크게 다음과 같은 구성 요소가 존재.
Method 설명
GET
: 이름 그대로 어떤 리소스를 "얻을 때" 사용.POST
: 웹 서버에 데이터를 "게시"할 때 사용하는게 일반적.Header 설명 (추가 데이터. 메타 데이터)
브라우저가 어떤 페이지를 원하는지
요청 받은 페이지를 찾았는지
성공적으로 찾았는지
이러한 사례 외에도 아주 다양한 의사 표현을 위한 데이터를 모두 Header 필드에 넣고 주고받음. 메서드도 사실은 헤더에 포함되어 서버로 보내진다.
Payload 설명 (데이터. 실질적인 데이터)
GET
method를 제외하곤 모두 Payload를 보낼 수 있다" 는게 HTTP에서의 약속웹서버는 인터넷을 통해 HTTP를 이용하여 웹상에서 클라이언트의 요청을 응답해주는 통신을 하는 컴퓨터 또는 프로그램이라고 생각하시면 된다.
오늘날 우리가 자주 사용하는 이메일이나 웹사이트 등 대부분의 인터넷 사용은 웹서버를 통해 우리가 사용할 수 있게 되었음
2022년 글로벌 WebServer 점유율
브라우저를 통해 HTTP request로 웹사이트를 웹서버에 요청.
이후 웹서버는 요청을 승인하고 HTTP response를 통해 웹사이트 데이터를 브라우저에 전송
마지막으로 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려낸다
기본적으로 브라우저가 웹서버에 요청을 할때는 항상 GET method로 요청.