반응형 IT 개인 공부/Web15 웹 서버(Web Server) vs WAS(Web Application Server) 요즘 스프링 부트를 이용해서 간단한 웹 애플리케이션을 실습해보고 있다. 스프링 부트에선 클라이언트에게 보여지는 view를 정적(static) 페이지와 동적(templates) 페이지로 분리해서 관리한다. 정적 페이지와 동적 페이지, 이들을 서비스하는 서버인 웹 서버와 웹 애플리케이션 서버에 대해 간단하게 알고 있었지만 이번 기회에 한번 제대로 알아보려고 한다. 우선 정적 페이지와 동적 페이지에 대해서 알아보자. 정적 페이지는 우리가 웹사이트에서 어떠한 동작을 하더라도 아무런 변화가 없이 항상 동일한 페이지이다. 우리가 url을 통해 웹사이트를 접속하게 되면 웹 애플리케이션은 웹 서버를 통해 url에 해당하는 파일(image, html, css 등)을 찾아서 우리에게 보여준다. 반면 동적 페이지는 .. 2021. 7. 24. HTTP 메서드 대부분의 인터넷은 HTTP 프로토콜을 통해 데이터를 주고받는다. 비개발자라면 "아 그렇구나" 하고 이 정도만 알고 넘어가도 되겠지만 웹 공부를 하고 있기 때문에 클라이언트와 서버가 HTTP 프로토콜 위에서 어떠한 방식(HTTP 메서드)으로 데이터를 요청 및 응답하는지에 대해 한번 알아보려고 한다. HTTP 메서드는 총 9가지가 존재한다. 다만, 보안상의 이유로 대부분의 서버는 GET, POST, OPTIONS 메서드들만 허용하도록 한다. 그럼 하나씩 간단하게 살펴보자. 다음으로 비슷한 HTTP 메서드들의 차이점을 간단하게 알아보도록 하자. 먼저 GET과 POST이다. 두 메서드 모두 서버에게 무언가를 요청할 때 사용하는 메서드이지만 둘 사이에는 차이점이 존재한다. GET 방식은 "URL?리소스" 형.. 2021. 7. 24. 쿠키(Cookie) vs 세션(Session) 학부시절 인터넷 프로그래밍 과목을 수강하면서 쿠키와 세션에 대해 배웠었다. Web에 대해 공부하다 보니 기본적으로 알아야 할 것 같은데 너무 오래된 것 같아서 한번 다뤄보려고 한다. 먼저 쿠키와 세션이 왜 필요한 지부터 알아보자. 대부분의 인터넷은 HTTP 프로토콜을 통해 통신한다. 그 이유는 HTTP 프로토콜이 비연결지향(Connectionless)적이며 상태가 없는(Stateless) 특징을 가지기 때문이다. 비연결지향(Connectionless) 클라이언트가 서버에게 Request를 보내면, 서버는 클라이언트에게 Response를 보내고 접속을 끊음 HTTP1.1에서는 Keep-Alive 기능을 통해 한 번의 세션에서 여러 번 통신이 가능함 상태가 업음(Stateless) 주고받은 데이터에 대한.. 2021. 7. 24. MVC 패턴 요새 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 공부하고 있는데 간단한 웹 애플리케이션을 개발하는데 클래스들을 체계적으로 분리해서 개발을 진행하는 것을 볼 수 있었다. 상당히 낯선 방식이라 궁금해서 찾아봤더니 스프링을 이용한 웹 애플리케이션은 기본적으로 MVC라는 디자인 패턴을 토대로 설계 및 개발한다는 것을 알게 되었다. 책의 내용을 우선 따라 해보는 것도 좋지만 왜 저렇게 나눠서 관리하는지에 대한 의문이 들어서 한번 공부 및 정리해 보려 한다. MVC는 Model-View-Controller의 약자로써 애플리케이션을 3가지 역할로 분리해서 개발하는 방법을 뜻한다. MVC 패턴을 알아보기 전에 왜 역할을 분리해서 개발을 하는 것일까? 이는 많은 이유가 있겠지만 개발 및 유지 보수가 편리하.. 2021. 7. 23. HTTP 상태 코드 가끔씩 인터넷을 사용하다 보면 이러한 문구를 본 경험이 있을 것이다. 404 Not Found를 대충 이해해 보면 아마 요청한 웹사이트를 찾지 못했다고 알려주는 메시지인 것 같다. 웹에 대해서 공부하다 보니 한번 짚고 넘어가 보려고 한다. 이전에 공부한 HTTP 프로토콜을 떠올려보자. HTTP 프로토콜은 클라이언트-서버 모델을 따르는 프로토콜로 클라이언트에서 서버에게 요청을 보내면 서버는 요청을 처리해서 클라이언트에게 응답을 해주는 방식이라고 하였다. 서버가 클라이언트에게 Response를 보낼 때 HTTP 상태 코드를 함께 보냄으로써 클라이언트 측에서 자신의 Request에 대한 처리가 잘 되었는지를 HTTP 상태 코드를 통해 쉽게 식별할 수 있도록 해주는 것이 바로 HTTP 상태 코드의 역할이다... 2021. 7. 23. HTTP vs HTTPS 우리가 어떤 웹사이트에 접속하려고 URI를 타이핑하다 보면 항상 앞에 http:// or https://라는 것이 추가되는 것을 확인할 수 있다. 그렇다면 http는 어떤 것을 의미하는 걸까? HTTP는 Hypertext Transfer Protocol의 약자로 TCP/IP 위에서 작동하는 인터넷상에서 데이터를 주고받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다. 서버/클라이언트 모델이란 클라이언트에서 서버에게 요청을 보내면 서버는 요청을 처리해서 클라이언트에게 응답을 해주는 방식을 뜻한다. 영어를 그대로 해석하면 하이퍼텍스트를 전송하는 프로토콜이다. 하이퍼텍스트는 노드(Node)와 링크(Link, 하이퍼링크)로 구성된 텍스트로써 링크를 통해 전달하는 텍스트를 의미한다. HTTP로 보낼 수 있는 .. 2021. 7. 23. 이전 1 2 다음 반응형