브라우저 주소창에 입력된 URI의 맨 앞을 보면 HTTP 혹은 HTTPS로 시작됨을 알 수 있다.
내가 사용하는 브라우저에 가장 오~래 친숙하게 보던, 하지만 이게 뭔데! 하던 HTTP에 대해서 알아보자
HTTP?
HTTP는 HyperText Transfer Protocol의 줄임말로, HTTP는 웹 브라우저와 웹 서버의 소통에 필요한 HTML과 같은 문서를 전송하기 위한 프로토콜이다.
(음.. 말그대로 웹에서 서버와 클라이언트가 소통하기 위한 일종의 규약?으로 볼수 있다)
전통적인 클라이언트-서버 모델에서 클라이언트가 HTTP Messages 양식에 맞춰 요청을 보내면, 서버도 HTTP Messages 양식에 맞춰 응답한다.
(*HTTPS는 HTTP Secure로, HTTP의 데이터를 암호화하지 않고 보내는 취약한 보안문제가 있고, 이를 해결하기 위해 SSL이라는 암호화 기술을 더한 것)
HTTP messages?
클라이언트와 서버 사이 데이터가 교환되는 방식
(위에서 본 HTTP가 세부적으로 이러한 규칙들로 자기들끼리 상호작용하는구나?!라고 알고 있으면 된다)
- 요청(Requests)
- 응답(responses)
요청과 응답은 다음과 같은 유사한 구조를 갖는다.
- start line : 첫 번째 줄에 위치하며 start line에는 요청이나 응답의 상태를 나타냄.(응답에서는 status line이라고 부름)
- HTTP headers : 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합
- empty line : 헤더와 본문을 구분하는 빈 줄있음
- body : 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함(요청과 응답의 유형에 따라 선택적으로 사용 가능)
이 중 start line과 HTTP headers를 묶어 요청이나 응답의 헤드(head)라고 하고, payload는 body라고 한다.
HTTP는 무상태성(Stateless)
말그대로 상태를 가지고 있지 않다는 뜻.
HTTP로 클라이언트와 서버가 통신을 주고받는 과정에서, HTTP가 클라이언트나 서버의 상태를 확인하지 않는다.
HTTP는 통신 규약일 뿐이므로, 상태를 저장하지 않는다.
따라서 필요에 따라 다른 방법(쿠키-세션, API 등)을 통해 상태를 확인한다.
HTTP는 웹에서 서버와 브라우저가 소통하기 위한 프로토콜이다.
HTTP는 무상태성을 갖는다.
HTTP에는 서로 소통하기 위한 HTTP messages라는 규칙이 있다.
이정도로 정리해 볼수 있겠다!
'네트워크' 카테고리의 다른 글
CORS 설정하기 (0) | 2022.12.08 |
---|---|
CORS(feat.SOP) (0) | 2022.12.07 |
브라우저의 동작과 구조 (0) | 2022.07.21 |