Http
HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜. 확장성이 뛰어나다.
웹에서 이루어지는 모든 데이터 교환의 기초이며 클라이언트-서버 프로토콜이기도 하다.
클라이언트-서버 프로토콜이랑 수신자(브라우저) 측에 의해 요청이 초기화되는 프로토콜.
하나의 완전한 문서는 텍스트, 레이아웃 설명, 이미지 등의 불러온(fetched) 하위 문서로 구성.
클라이언트와 서버는 개별적인 메시지 교환으로 통신한다. 보통 브라우저인 클라이언트에 의해 전송되는 메시지를 request(요청), 서버의 응답으로 전송되는 메시지를 response(응답)라 부른다.
http는 애플리케이션 계층의 프로토콜이며 이론상으로 무엇이든 사용할 수 있으니 TCP / TLS로 전송된다.
클라이언트 (사용자 에이전트)
사용자를 대신하여 동작하는 모든 도구. (브라우저 등)
항상 요청을 보내는 개체. 결코 서버가 될 수 없다.
HTML 문서를 가져오기 위한 요청 -> 스크립트, 리소스(이미지 등), 레이아웃 정보(css)에 대응하는 추가적인 요청들을 가져온다. 스크립트에 더 많은 요청 존재 가능 > 웹 페이지 갱신
웹 서버
클라이언트에 의한 요청에 대한 문서를 제공하는 서버.
사실상 논리적 단일 기계. 로드 밸런싱, 다른 컴퓨터들의 정보(DB 서버, 캐시 등)를 얻고 문서를 생성하는 소프트웨어의 복잡한 부분을 공유하는 서버의 집합일 수 도 있다.
프록시
클라이언트와 서버 사이의 애플리케이션 계층에서 동작하는 것들.
눈에 보이거나 그렇지 않은 경우(요청이 변경되거나 그렇지 않은 경우)가 있으며 다양한 기능 수행
캐싱 - (캐시는 공개 또는 비공개 가능)(브라우저 캐시)
필터링 - (바이러스 백신 스캔, 유해 컨첸트 차단)
로드 밸런싱 - 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법
인증 - (다양한 리소스에 대한 접근 제어)
로깅 - (이력 정보 저장)