Http Study - Chapter 1
HTTP 란?
인터넷의 멀티 배달부, 전세계 웹통신이 표준기술
서버 클라이언트 간 통신을 가능케 하며, 이를 통해 클라이언트는 서버의 리소스에 접근할 수 있게 된다.
웹 서버는 웹 리소스를 관리 하고 제공하며, 다양한 정적 파일들이 가장 간단한 그 예시이다.
이러한 리소스들의 종류를 명세한것이 미디어 타입 즉 MIME 타입 이다.
Contnet-type: image/jpg
서버에게 이러한 웹 리소스를 요청하기 위해 클라이언트는 URI 라는 것을 이용한다, Uniformed Resource Identifier 의 약자로, 웹 서버상의 리소스 위치를 나타낸다.
URI 에는 현재 두 가지 종류가 있다. URL 과 URN 이다.
URL: Uniformed Resource Locator
- scheme:address/resource_location
URL: Uniformed Resource Name
- URL 과 달리 URN 은 리소스 위치에 영향을 받지 않고 리소스에 접근가능하게 하는 것이 특징인데, 현재 이러한 기능을 지원하기 위한 인프라 자원이 부족하여 실험 상태에 머물러 있다.
HTTP 프로토콜을 이용해 서버와 클라이언트가 리소스를 주고 받는 일련의 과정을 트랜잭션이라고 할 수 있다.
HTTP Request 의 종류를 정의한 것을 Method 라고 부른다. POST, GET, PUT, DELETE 등이 있다.
HTTP Response 에 대해서 서버가 응답을 할 때 상태 코드와 메세지가 함께 클라이언트로 전달이 된다. 이는 클라이언트의 요청의 처리에 대한 정보를 담고 있다. 200,302,404 등이 존재한다.
앞서 설명한 트랜잭션이 웹 환경에 따라 여러번 수행될 수 있다.
HTTP 통신에 있어서 오고가는 메세지는 시작줄, 헤더, 본문으로 구성 되어 있으며, 본문은 생략 될 수 있다. 유의해야할 특징 중 하나는 헤더는 빈 줄로 끝난다는 것이다.
HTTP 는 OSI 7계층 정의에 따르면 어플리케이션 계층에 해당하며, HTTP 의 하위에는 TCP 라는 전송 계층과 IP 라는 네트워크 계층이 존재한다. TCP 프로토콜을 간단히 설명하자면,
- 오류가 없으며
- 순서대로 데이터가 전달되며
- 데이터 스트림 형태로 전달되어 데이터가 조각나지 않는다.
위와 같은 특징을 지닌다.
특정 웹 접속시, IP 를 이용하거나 URL 을 이용하거나 하는 등의 다양한 방식이 존재할 수 있음. 다만 URL 일 경우 DNS 서버등을 거쳐 IP 주소로 변환되는 과정이 존재해야 하며, IP 든 URL 이든 port 번호 지정이 있어야 하는데, 만약 생략 되었다면 http 프로토콜의 경우 80, https 프로토콜의 경우 443 을 기본값으로 사용하게 된다.
웹의 구성요소
Proxy
클라이언트와 서버사이에 존재하며, 보통 보안을 위해 사용된다.
Cache
웹 서버 성능 향상을 위해 주로 찾는 리소스를 복제해서 클라이언트에게 전달하는 역할을 담당한다.
Gateway
서버들의 서버로 보통 HTTP 트래픽을 FTP 등 다른 프로토콜로 변환하기 위해 사용된다.
Tunnel
두개의 커넥션 사이에서 raw data 를 열어보지 않고 바로 이어서 연결해주는 역할을 하는 HTTP 애플리케이션 이다.
Agent
웹 요청을 만드는 모든 프로그램을 지칭 하며, 검색엔진을 위해 웹페이지를 수집하는 에이전트 등이 존재한다.