Developer/web

HTTP 개관

hadaney 2020. 6. 7. 20:53

http와 관련된 개념들을 간단히 정리해본다

해당 내용은 'Http 완벽 가이드'라는 책을 바탕으로 기술하였다.

 

HTTP 개관

* 클라이언트가 브라우저(크롬, 익스플로러)를 통해 요청을 하면, 브라우저는 웹서버로 TCP 커넥션을 형성한 후 요청 Http 메세지를 보낸다. 웹서버는 url을 해석하여 요청하는 리소스의 위치를 확인하고, http메서드와 본문의 내용을 기반으로 이를 처리한 후 응답 메세지를 보낸다.

 

1) Http (Hypertext Transfer Protocol) : WWW(월드 와이드 앱, 즉 인터넷)에서 데이터를 주고받기 위해 사용하는 프로토콜(==약속언어) 프로그램. 전송 중 데이터의 훼손이나 중복되지 않도록 보장한다

 

2) http 프로토콜로 의사소통하는 주체 : 웹 클라이언트 - 브라우저 - 웹 서버

브라우저가 클라이언트의 요청에 따라 http 객체를 웹서버로 보낸다.

웹 서버의 경우 , Http 프로토콜로 의사소통하므로 http서버라고도 불린다

 

3) 리소스는 웹 서버가 다루는 모든 자원을 일컫는데 다양한 자원을 명확히 인식하게 하기 위해

전달받는 리소스의 유형(MIME타입)을 Content-type 의 항목으로 http에 명시해야 한다

 

4) 리소스를 가리킬 때 사용하는 식별자를 URI ( Uniform Resource identifier ) 라 한다.

URI는 '자원의 위치'( URL : Locator )를 통해 나타낼 수 있고, '고유의 명칭'( URN : Name )을 통해 나타낼 수도 있다.

 

5) DB에서 쓰이는 의미와 유사하게, 자원을 요청하고 전달받는 일련의 행동과정을 트랜잭션 (Transaction) 이라 한다. 이 상호작용이 올바르게 이뤄지기 위해, Http메세지는 메서드(요청 명령), 상태 코드(요청 결과) 등을 통해 규격화되어있다.

 

6) Http 메서지는 그냥 단순한 문자열들의 집합이다. 위에서부터 '시작줄-헤더-본문'으로 구성되어 있다.

 

7) http 메세지가 완전하게 전송됨을 보장하기 위해 웹 브라우저는 전송 이전에 먼저 웹 서버와 TCP 커넥션을 맺는다

* 외워둘 키포인트 Q) 인터넷창에 url을 치고 엔터를 누르는 순간 어떠한 일이 일어나는가?
 - 웹 브라우저가 url을 분석하여(호스트명->IP변환) 요청할 서버를 확인한다
 - 웹 브라우저가 포트번호를 확인하여 리소스의 위치를 체크한다
 - 웹 브라우저는 데이터를 요청할 웹 서버와 TCP 커넥션을 만든다
 - 웹 브라우저가 웹 서버에 HTTP 요청을 보낸다
 - 웹 서버는 들어온 요청을 처리하여 http 응답을 웹 브라우저에게 보낸다
 - 웹 브라우저가 응답 메세지를 통해 웹 클라이언트에게 결과를 제시한다

 

8) 인터넷과 상호작용하는 다양한 웹 어플리케이션이 있다. 웹 브라우저와 웹 서버도 웹 어플리케이션 중 하나이다.

 - 프락시 : 클라이언트와 서버 사이에서 모든 HTTP요청을 받아 서버에 전달하는 중개자로 주로 보안을 위해 사용된다.

 - 캐시 : 자주 요청되는 내용의 사본을 저장해 두는 프락시 서버. 웹 캐시, 캐시 프락시.

 - 게이트웨이 : HTTP트래픽을 다른 프로토콜로 변환하여 서버에 전달한다. HTTP로 요청을 보내는 클라이언트는 게이트웨이를 진짜 서버처럼 생각하고 요청을 보낸다.

 - 터널 : 주로 비 Http 데이터를 하나 이상의 Http연결을 통해 그대로 전송해 주기 위해 사용한다. 프락시나 게이트웨이와 달리 요청에 대한 수정없이 데이터를 그대로 전달한다

 

9) 에이전트는 사용자를 위해 Http요청을 만들어 서버에 요청하는 클라이언트 프로그램으로 웹 브라우저가 대표적이다.

이와 달리 우리가 http요청을 직접 입력하여 서버에 요청할 수 있도록 하는 telnet, ssh(telnet에 보안기능이 추가된 업그레이드 버전) 등의 유틸리티도 존재한다.