An overview of HTTP 1탄!

정체는 김태현·2022년 12월 14일

roadmap.sh/backend

목록 보기
5/6

HTTP 는 HTML 문서의 리소스를 갖고(fetch) 오는 프로토콜이다. 이것은 웹에서의 데이터 교환의 기반이며 클라이언트-서버 프로토콜이다, 즉 수신자의 요청을 이니시에티드(initiated-개시되게 하다, 착수시키다) 한다. 보통 수신자는 웹 브라우저 이다. 완성된 문서는 다른 서브문서, 텍스트, 레이아웃 설명, 이미지, 비디오, 스크립트 등으로 재구성되어 있다.

클라이언트와 서버는 각기 다른 독립된 메세지를 통해 커뮤니케이트 한다. 그 메세지는 클라이언트로 부터 보내지고, 보통 웹브라우져, 리퀘스트라 부르며 서버에서 보내온 메세지는 리스폰스라 불린다.

1990년대에 디자인 되었으며 HTTP는 확장 가능한 프로토콜이며 이미 여러번의 진화를 거듭했다. 이것은 어플리케이션 레이어의 프로토콜이며 TCP 혹은 TLS가 적용된 TCP 연결을 넘어 어떤 신뢰가능한 어떤 트렌스포트 프로토콜에 이론적으로 사용될수 있다. 확장가능성에 따라, 이것은 Hypertext 문서만 갖고 올수 있는 것은 아니다, 이미지, 비디오, 혹은 컨텐츠를 서버에 올릴수도 있다. HTTP 는 요청에 따라 웹페이지의 문서의 일부분만을 업데이트 할수도 있다.

Components of HTTP-based systems

HTTP는 클라이언트-서버 프로토콜이다 : 리퀘스트는 유저-에이전트라는 하나의 엔티티에 의해 보내진다. 대부분의 유저-에이전트는 웹브라우져이다, 하지만 그 어떤것이든 될수 있다, 예를들면 검색엔진 인덱스를 만들고 유지하기 위해 웹을 크롤링하는 로봇이 될수도 있다.

각각의 요청은 서버로 보내지며, 그에 대한 응답으로 리스폰스를 제공한다. 클라이언트와 서버 사이에는 많은 수의 엔티티가 존제하며, 정확하게 프록시라 불린다, 각각의 다른 활동을 갖고 있으며 게이트웨이 혹은 캐쉬로 역할한다.

실제론 컴퓨터와 브라우저 사이에는 요청을 헨들링하는 많은 것들이 있다: 라우터, 모뎀 등. 웹의 레이어드 된 디자인 덕분에 그것들은 네트워크와 트렌스포트 레이어에 숨겨져 있다. HTTP 는 그것의 위에, 어플리케이션 레이어 위에 존재한다. 네트워크의 문제점을 진단하는데 중요하지만, 아래의 레이어 계층은 HTTP를 성명하는데 있어 중요하지는 않다.

Client: the user-agent

유저-에이전트 는 사용자를 위해 활동하는 (acts) 툴이다. 이 역할은 웹브라우져에 의해 작동된다, 하지만 엔지니어와 웹 개발자들이 어플리케이션을 디버깅 하는데 쓰는 프로그램에 의해 작동될수도 있다.

브라우저는 항상 요청을 시작하는 엔티티이다. 절대 서버가 시작할수 없다.

웹 페이지를 보여주기 위해 브라우저는 페이지를 나타내는 HTML 문서를 가져오도록 (original) 요청을 보낸다. 그런 다음 이 파일을 분석하여 스크립트, 레이아웃 정보(CSS) 및 페이지에 포함된 하위 리소스(일반적으로 이미지 및 비디오)에 해당하는 추가 요청을 보낸다. 그런 다음 웹 브라우저는 이러한 리소스를 결합하여 전체 문서인 웹 페이지를 표시한다. 브라우저가 실행하는 스크립트는 나중에 더 많은 리소스를 가져올 수 있으며 브라우저는 그에 따라 웹 페이지를 업데이트한다.

웹 페이지는 하이퍼텍스트 문서 이다. 보여지는 몇부분은 링크를 담고있다, 이부분은 새로운 웹페이지를 불러올수 있다, 유저가 유저-에이전트에게 지시하고 웹을 탐색할수 있게 한다. 브라우저는 유저의 지시를 HTTP 요청으로 변환하고 더 나아가 유저에서 정확한 응답을 보여주기 위해 HTTP 응답을 해석 합니다.



의역과 오역이 있습니다. 원문을 보시는걸 추천드립니다.
원문 https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview

profile
하나부터 열가지 다

0개의 댓글