Computer Engineering/web

웹 개발자로 일하면서 웹서버와 WAS의 동작에 대해 포스팅한 적이 한번도 없는거에 놀라서 써보려고 한다. 돌아가는 방식만 대충 알고 자세히는 알아본 적이 없는데 글 쓰면서 헷갈리는 부분이 있으면 과감하게 찾아보며 기록할 예정이다. 웹 서버와 WAS의 차이점이란? Web Server와 WAS(Web Application Server)는 처음 들으면 두개가 무슨 차이야? 하는 의문점이 들 가능성이 크다. 웹 서버와 WAS은 큰 차이점은 어떤 컨텐츠를 다루냐이다. 우리는 클라이언트에게 정적 컨텐츠와 동적 컨텐츠를 제공해야할 필요가 있는데, 여기서 말하는 정적 컨텐츠란 우리가 웹 개발하면서 흔히 접하는 css, html 등이 있다. 우리가 홈페이지의 첫화면을 들어가면 어떤 사용자이든 상관없이 동일한 화면을 보게..
우리는 로그인을 통한 사용자 인증을 구현해야 한다. 그런데 왜 인증을 해야할까? 먼저 HTTP의 Stateless 특성을 통해 로그인할때 왜 인증을 해주어야 하는지에 대해 살펴보자. 그리고 쿠키, 세션, 토큰 인증 방식을 비교하고 결국에 왜 토큰 방식 중 JWT가 선택되었는지도 알아보자. HTTP의 두가지 특성 1. connectionless HTTP는 서버와 브라우저간의 연결을 계속 유지하지 않는다는 뜻이다. 서버와 클라이언트 사이의 통신이 끝나게 되면 연결이 끊긴다. 2. stateless 상태를 유지하지 않는다. 첫번째 연결에서의 상태가 두번째 연결까지 유지되지 않는다. 이전 상태가 저장되지 않고 연결마다 갱신된다. 이 때문에 처음 로그인한 상태가 계속 유지가 되지 않는다는 문제점이 발생한다. 요약..
실시간으로 소통하는 서비스를 만들려면 어떤 방식을 사용해야 할까? 실시간이라는 말 자체가 연결이 지속되어 있는 상태가 유지되어야 할텐데, 내가 기존에 알고있던 HTTP는 요청 응답후 연결을 닫아버린다. HTTP의 고질적인 문제를 해결하는 방법(웹 소켓)을 소개하려고 한다. 또한 연결이 지속되지 않아도 실시간처럼 눈속임을 할 수 있는 방법들(코멧)도 살펴보자. HTTP 통신 클라이언트 요청이 있을 때만 서버가 응답하여 해당 정보를 전송하고 곧바로 연결을 종료한다. 실시간 연결이 아닌, 필요한 경우에만 서버에 접근하는 콘텐츠 위주의 데이터 연결 실시간 서비스를 구현하려면 통신이 종료될때까지 계속해서 http 요청을 서버로 보내야한다. 이러한 연결요청은 과부하 위험이 있다. 소켓 통신 서버와 클라이언트가 특정..
soohey
'Computer Engineering/web' 카테고리의 글 목록