HTTP 개요
- HTTP는 HTML 문서와 같은 리소스를 가져올 수 있도록 해주는 프르토콜이다.
--> 프로토콜이란 : 컴퓨터 내부에서, 또는 컴퓨터 사이의 데이터 교환방식을 정의하는 규칙 체계.
기기 사이에 통신은 교환되는 데이터 형식에 따라 상호 합의를 요구함.
- HTTP는 웹에서 이루어 지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이다.
- 브라우저(클라이언트)에서 전송되는 메세지를 요청(requests)라고 부르며, 그에 대해 서버에서 응답으로 전송되는 메세지를 응답(responses)라고 함.
- 신뢰 가능한 전송 프로토콜 이라면 이론상 무엇이든 사용 가능하지만 TCP 또는 암호화된 TCP인 TLS를 통해 전송
--> TCP : 두 개의 호스트를 연결하고 데이터 스트림을 교환하게 해주는 중요한 네트워크 프로토콜
데이터와 패킷이 보내진 순서대로 전달하는 것을 보장해준다.
--> TLC (전송 계층 보안) : 어플리케이션들이 네트워크 상에서 안전하게 통신하기 위해 사용된 프로토콜.
이메일, 웹 브라우징 ,메세징 등 감청을 통한 정보의 변형을 방지한다.
HTML 구성 요소
- 클라이언트 : 사용자 에이전트
-- 브라우저는 항상 요청을 보내는 개체, 결코 서버가 될 수 없음.
-- 브라우저는 페이지의 HTML 문서를 가져오기 위한 요청을 전송한 한뒤, 파일을 구문 분석하여 실행해야 할 스크립트 , 하위 리소스들, CSS등 추가적인 요청을 가져옴.
-- 브라우저는 완전한 문서인 웹 페이지를 표시하기 위해 리소스를 혼합합니다.
-- 웹 페이지는 하이퍼텍스트 문서로, 텍스트의 일부는 사용자가 웹을 돌아다닐 수 있도록 링크로 구성되어 있음.
- 웹서버
-- 클라이언트의 요청에 대한 문서를 제공하는 서버
- 프록시
-- 브라우저와 서버사이엔 수많은 HTTP메시지가 이어 받고 전달하지만 HTTP계층에서는 어떻게 동작하는지 눈에 보이지 않습니다.
-- 이러한 컴퓨터/머신 중에서도 애플리케이션 계층에서 동작하는 것들을 일반적으로 프록시라고 부릅니다.
-- 프록시 역시 눈에 보이거나 그렇지 않을수 있으며 다양한 기능을 수행할 수 있습니다.
-- 종류 : 캐싱, 필터링, 로드 밸런싱, 인증, 로깅
HTTP의 기초적인 측면
- 간단함
- HTTP는 사람이 읽을 수 있으며 간단하게 고안됨.
- 확장 가능
- HTTP 헤더는 HTTP를 확장하고 실험하기 쉽게 만들었음.
- 상태는 없지만 세션은 존재
- HTTP는 상태를 저장하지 않아서 전달된 두 요청 사이에는 연결 고리가 없음
- 쇼핑바구니 처럼 일관된 방식의 상호작용에 문제가 되지만 HTTP쿠키는 세션을 만들수 있게 함.
댓글