HTTP 란?

Jun·2022년 6월 25일
0

HTTP

Http 는 hyperText transfer protocol 의 약자로 클라이언트와 서버사이에서 text 파일을 전송할 수 있게하는 통신 프로토콜이다. 웹은 클라이언트 와 서버로 이루어져있다. 클라이언트는 우리가 흔히 아는 인터넷 익스플로러, 파이어폭스, 구글 크롬같은 것들이 있다. 서버는 클라이언트가 요청하는 모든 데이터들(리소스)을 저장하고있는 곳이다.

미디어타입

웹서버는 모든 http 객체 데이터에 MIME(Multipurpose Internet Mail Extensions) 타입을 붙인다. 클라이언트 서버와 데이터 통신을 할때 HTTP 헤더에 content-type 에 명시 되어진다. MIME 타입은 원래 메일을 주고받기위해 만들어졌는데 성능이좋아 http 데이터 통신을 할때 사용되어졌다고한다. MIME 는 주타입과 부타입으로 나눠서 작성된다. text/html , image/jpeg, image/gif …등등 MIME 타입은 수백가지가있다.

URI/URL

URI 는 http uniform resource identifier 의 약자로 프로토콜, 호스트네임, 리소스로 나눠진다. URL은 프로토콜,서버,리소스를 명시한다. Uri 는 리소스의 고유 식별자(ex - 상품 아이디)를 추가할 수 있어 uri는 모든것을 포함하고 있고 url 은 고유 식별자를 제외한 프로토콜,호스트,리소스 까지만 나타낸다.

HTTP 메세지

HTTP 메세지 는 클라이언트가 서버로 요청을 보낼때와 서버가 클라이언트로 응답을 보낼때 보내진다. 메세지의 구조는 시작줄 / 헤더 / 본문 으로 나눠져있다. 시작줄은 요청메세지에서는 어떤 http 메서드를 사용하여 어떤 데이터를 요청하는지 간략하게 나타내고 응답 메세지에서의 시작줄은 통신 상태 ( 200,404) 를 나태낸다. 본문은 요청과 응답에 필요한 데이터들을 보여준다.

HTTP 통신 방법

HTTP는 TCP/IP 통신을 사용한다. Http 통신은 정확한 데이터들을 주고받아야 한다. TCP는 오류가없고 정확한 데이터들을 전송시켜준다. TCP는 데이터를 전송하기전에 클라이언트와 서버와의 커넥션을 하는데 3 way handshake를 사용한다. 데이터 전송이 끝나면 4-way-handshake 를 통해서 커넥션을 끊는다. HTTP는 7계층에서 어플리케이션층에 담당하고 TCP 는 전송계층 IP는 네트워크 계층이다.

HTTP 통신 순서 예시

웹 브라우저는 사용자가 입력한 URL 에서 호스트명 을 찾아낸다.
호스트명을 IP로 변환하고 포트 번호가 있으면 추출하고 없으면 80으로 추출한다.
클라이언트와 서버가 TCP 커넥션을한다.
요청메세지와 응답메세지를 주고 받는다.
TCP 커넥션이 끊어지면 클라이언트는 받은 데이터들을 렌더링을한다.

웹 구성요소

프락시
프락시는 클라이언트가 보낸 요청을 대신 전달받아 서버로 요청보내준다. 중간에서 데이터들을 전달받아 보내주는데 보안을 위해 주로 사용된다. (바이러스검출)
캐시
캐시는 특별한 http 프락시 서버이다. 자주사용되는 데이터들을 저장한다. 클라이언트가 서버로 데이터 요청을 보낼때 곧바로 요청보내지않고 캐시에서 데이터가 있는지 먼저 확인한다. 데이터가 있으면 서버를 거치지않고 바로 캐시에서 꺼내사용한다. 때문에 빠른 통신을 해준다.

0개의 댓글