WAS & WebServer

하윤철·2024년 7월 16일

Spring에 대해 공부하다가 Tomcat이 나왔기에 알아보았다.

WebServer vs WAS

WebServer

  • 정적 페이지를 담당
  • Nginx, Apache가 대표적이다.

WAS

  • WebServer + WebApplication **(+서블릿 컨테이너)를 포함해서 동적 페이지**를 제공
  • Spring, Apache-Tomcat 등 프레임 워크가 대표적이다.

데이터 흐름

[Client → WebServer →WAS ⇒필요시 Data] 순으로 요청들어옴

  1. 만약 WebServer가 처리 가능한 정적페이지면 처리
  2. 만약 동적페이지 요청이면 WAS로 요청 넘김

즉, 정적페이지는 WebServer가, 동적페이지는 Spring이 담당한다.

하지만 최근엔 Apache-Tomcat 처럼 WAS안에서 알아서 정적, 동적 페이지를 처리하는 추세이다.


참고: HttpStatus 값

WAS 및 WebServer를 다루다 보면 HTTP 응답값들을 종종 보기에 정리 해보았다.

200

  • 200 OK : OK
  • 201 Created : 요청에 따른 데이터가 성공적으로 생성되었을 때

300

  • 301 Moved Permanently : 새로운 URL로 이동할 떄
  • 302 Found : 기존 URL을 유지하면서 컨턴츠만 새로운 URL에서 가져올 때
  • 304 Not Modified : 캐싱된 파일이 반환되었을 때

400

  • 400 Bad Request : Content-Type: application/json인데 JSON으로 안보낸 경우 혹은 비논리적인 경우
  • 401 Unauthorized : 로그인 안했는데 유저 페이지 접근했을 때
  • 403 Forbidden : 일반 유저가 어드민 페이지를 url로 접근했을 때
  • 404 Not Found : 존재하지 않는 리소스에 접근할 때
  • 405 Method Not Allowed : URL은 맞지만 HTTP Method가 틀릴 때
  • 406 Not Acceptable : 헤더에 정의해놓은 바디를 요구하는데 요구 사항을 맞추지 못했을 때 (DTO에 Getter 메서드를 만들지 않았을 때)

500

  • 500 Internal Server Error : 예상치 못한 대다수의 서버 에러
  • 501 NotImplementedException : 클라이언트 요청에 대한 서버의 응답 수행 기능이 없음을 의미(서버가 지원하지 않는 새로운 Method를 사용하여 요청 - GET2, POST2...) BUT 항후 개발 시 지원 할 예정
  • 502 Bad Gateway : WAS가 동작하지 않을 떄
profile
선순환을 만드는 개발자

0개의 댓글