[2024.08.08 TIL] HTTP

박지영·2024년 8월 12일
0

Today I Learned

목록 보기
19/84

Http

HyperText Transfer Protocol

  • HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜. 확장성이 뛰어나다.

  • 웹에서 이루어지는 모든 데이터 교환의 기초이며 클라이언트-서버 프로토콜이기도 하다.

  • 클라이언트-서버 프로토콜이랑 수신자(브라우저) 측에 의해 요청이 초기화되는 프로토콜.

  • 하나의 완전한 문서는 텍스트, 레이아웃 설명, 이미지 등의 불러온(fetched) 하위 문서로 구성.

  • 클라이언트와 서버는 개별적인 메시지 교환으로 통신한다. 보통 브라우저인 클라이언트에 의해 전송되는 메시지를 request(요청), 서버의 응답으로 전송되는 메시지를 response(응답)라 부른다.

  • http는 애플리케이션 계층의 프로토콜이며 이론상으로 무엇이든 사용할 수 있으니 TCP / TLS로 전송된다.

  • 응답과 요청 사이에는 여러 개체가 존재한다. 게이트웨이 / 프록시 등

클라이언트 (사용자 에이전트)

  • 사용자를 대신하여 동작하는 모든 도구. (브라우저 등)

  • 항상 요청을 보내는 개체. 결코 서버가 될 수 없다.

  • HTML 문서를 가져오기 위한 요청 -> 스크립트, 리소스(이미지 등), 레이아웃 정보(css)에 대응하는 추가적인 요청들을 가져온다. 스크립트에 더 많은 요청 존재 가능 > 웹 페이지 갱신

웹 서버

  • 클라이언트에 의한 요청에 대한 문서를 제공하는 서버.

  • 사실상 논리적 단일 기계. 로드 밸런싱, 다른 컴퓨터들의 정보(DB 서버, 캐시 등)를 얻고 문서를 생성하는 소프트웨어의 복잡한 부분을 공유하는 서버의 집합일 수 도 있다.

  • 여러 개의 서버를 동일한 머신 위에서 호스팅 가능. 동일한 IP주소 공유

프록시

  • 클라이언트와 서버 사이의 애플리케이션 계층에서 동작하는 것들.

  • 눈에 보이거나 그렇지 않은 경우(요청이 변경되거나 그렇지 않은 경우)가 있으며 다양한 기능 수행

  • 캐싱 - (캐시는 공개 또는 비공개 가능)(브라우저 캐시)

  • 필터링 - (바이러스 백신 스캔, 유해 컨첸트 차단)

  • 로드 밸런싱 - 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법

  • 인증 - (다양한 리소스에 대한 접근 제어)

  • 로깅 - (이력 정보 저장)

profile
신입 개발자

0개의 댓글