본문 바로가기

World Wide Web/HTTP

(5)
HTTP와 HTTPS HTTP 통신을 하다보면 몇 가지 보안상의 이슈가 발생하게 된다. HTTP 자체는 굉장히 단순한 프로토콜이고, 요청과 응답의 BODY가 암호화된 상태에서 통신이 이루어지지 않기 때문이다. 그래서 그에 대한 대안으로 HTTP 요청/응답의 메시지를 암호화해서 보내는 방식이 있다. 이것은 HTTP 자체를 암호화하는 것이 아니라 HTTP 통신은 그대로이나 그 안에 담긴 메시지만 암호화하는 것이다. 그럼에도 불구하고 이 방식은 범용성이 낮다는 점에서 한계가 존재한다. 메시지 자체를 암호화하는 것이기 때문에 클라이언트의 브라우저가 이 메시지를 해독하지 못할 확률이 존재하기 때문이다. 그래서 HTTP 메시지 자체를 암호화하는 것이 아니라 HTTP를 암호화하는 방식이 대안으로 제시되었다. HTTPS는 HTTP를 SSL..
프록시, 게이트웨이에 관해 일반적으로 클라이언트와 서버가 HTTP통신을 할 때 요청과 응답을 주고 받는다. 클라이언트가 HTTP Request의 Header와 Body에 내용을 담아서 보내면, 서버는 그러한 Header와 Body에 담긴 내용을 해석해서 HTTP Response를 보내준다. 헌데 이 방식의 문제점은 보안에 취약하다는 문제가 존재한다. 클라이언트과 서버가 직접적으로 통신하는 것이기 때문에 서버의 위치가 노출되는 이슈가 있을 수 있으며, 주고 받는 데이터가 중복될 경우, 중복되는 통신을 서버와 하는 것이기 때문에 서버에 부담이 생길 가능성 역시 존재한다. 이러한 것을 해결하기 위해 클라이언트와 서버 사이에 중계자 역할을 하는 프로그램/서버를 넣기로 하였다. 그러한 것들이 바로 프록시, 게이트웨이이다. 1. 프록시 클라..
응용 프로토콜에 대한 이야기 우리가 응용프로토콜에 대해서 이야기할 때, 대부분은 HTTP에 대해서 이야기하기 마련이다. 그러나 HTTP는 수많은 응용 프로토콜 중에 하나일 뿐이다. 이것을 위해서는 우선 응용 프로토콜이 무엇인지에 대해서 이해해야 한다. 응용 프로토콜이란 무엇인가? 우리가 성벽에 불을 지펴, 봉화로 소통한다고 생각해보자. 서로 다른 지역에 있는 사람들끼리 봉화로 정보를 주고 받기 위해선, 무언가 약속이 있어야 한다. 이것이 어떠한 의미가 있는지 나름대로의 통신규약이 있어야 한다. 이것이 프로토콜이다. 응용프로토콜이란, 이러한 통신규약이 응용 프로그램의 수준에서 이루어 진다는 것을 의미한다. 이러한 응용 프로토콜에 HTTP, Telnet, SSH 등이 있는 것이다. HTTP는 일반적으로 웹 브라우저에서 우리가 사용하고 ..
HTTP와 WebSocket 비교 | 실시간 통신에 대해서 일반적으로 WEB API를 이야기하면, REST API를 말한다. REST API는 요청과 응답이 구분된다는 특징을 보인다. 특히 REST API는 자원과 메소드를 명확하게 정의한다는 점에서 안정성을 지니지만, 실시간 통신 기능을 구현하기는 힘들다. REST API에서 실시간 통신을 구현하기 위해선 지속적으로 request, response를 보내야 하는데, 그러다보면 클라이언트와 서버 모두에게 부담이 된다. 이것을 보완하기 위해 등장한 것이 WebSocket API이다. request와 response를 구분하는 것이 아니라 클라이언트와 서버 모두를 연결해서 정보를 실시간으로 연결시켜준다. 이렇게 연결을 시켜주는 부분을 소켓이라 한다. 클라이언트에도 소켓이 있고, 서버에도 소켓이 있고 그 안에 패킷이라..
쿠키, 세션, 토큰 각 차이점에 대해 NodeJS - 인증(쿠키, 세션, 토큰) : 모바일 / 웹 서비스에 대부분 사용하는 HTTP는 무상태 프로토콜이다 \--> 즉, 통신 이후에 어떠한 연결도 남지 않는다결과적으로, 사용자는 각각의 HTTP통신에 자신을 알릴 수 있는 정보 velog.io 위 출처를 통해 아주 쉽게 개념을 이해할 수 있었다. 일반적으로 회원가입/로그인 인증을 위해선 3가지 개념이 사용된다. 1) 세션 2) 쿠키 3) 토큰 여기에 추가적으로 소셜로그인(구글 로그인)을 이용하는 경우가 있다. 이 경우를 제외하고 세션, 쿠키, 토큰 각각의 경우에 대해 정리를 해볼 필요성을 느꼈다. 1. 쿠키 방식 가장 기본이 되는 방식으로 쿠키 방식이 존재한다. 1) 클라이언트가 서버에 로그인을 하면, 2) 서버는 클라이언트에 쿠키를 준다 3)..