ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 개프 하기 전 개념학습
    공부/spring 2023. 6. 5. 10:51

    서버와 클라이언트 

    서버 : 제공하는 주체

    클라이언트 : 제공받는 대상

     

    서버의 종류

    서버의 종류가 다른 이유 : 제공하는 서비스의 내용이 다르기 때문

    서버 종류 종류 설명
    웹 서버 웹 서비스를 제공하기 위한 서버 컴퓨터
    apache, IIS, NginX와 같은 웹 서버 소프트웨어를 사용하여 웹 서비스할 수 있습니다
    웹 애플리케이션 서버 웹 애플리케이션을 제공하기 위한 서버 컴퓨터
    tomcat, weblogic, websphere와 같은 웹 애플리케이션 서버 소프트웨어를 사용하여 웹 애플리케이션 서비스를 제공할 수 있습니다
    데이터베이스 서버 데이터베이스를 제공하기 위한 서버 컴퓨터
    oracle, ms-sql, mysql과 같은 데이터베이스 소프트웨어를 사용하여 서비스할 수 있습니다
    파일 전송 서버 대용량의 파일을 빠르게 주고받기 위한 서버 컴퓨터입니다
    vs-ftpd, iis와 같은 sw를 사용하여 서비스할 수 있습니다
    메일 서버 메일 서비스를 위한 서버 컴퓨터
    send-mail, microsoft exchange server와 같은 sw를 사용하여 서비스할 수 있습니다
    인쇄 서버 공간의 제약을 극복하고 인쇄를 할 수 있도록 하는 서버 컴퓨터입니다
    인쇄기 제품과 구성에 따라 해당 서비스를 지원하는 다양한 sw를 사용하여 서비스할 수 있습니

     

    서버 구성

    - 서버 컴퓨터를 구성하는 관점

    - 서버 컴퓨터의 종류, 서버 컴퓨터의 대수, 네트워크 정책, 서버 수용 인원 예측 등을 구성

     

    서버 환경 설정

    - 구성된 특정 컴퓨터 서버가 제공할 수 있도록 환경을 구성하는 과정

    - 웹 서벌는 apache, iis, nginx와 같은 웹 서버 sw를 이용하여 웹 서비스를 가능케 하는 서버 환경 설정을 의미

    - 웹 애플리케이션 서버는 tomcat, weblogic과 같은 웹 애플리케이션 서버 sw를 이용하여 웹 애플리케이션을 구동하여 서비스 가능케 하는 서버 환경 설정을 의미

     

    서버 구성 작업을 진행 후 서버가 구성되면 각 컴퓨터 서버에 서버가 서비스할 목적에 맞는 서버 환경 설정을 진행해야 합니다

    서버 구성 서버 환경 설정 작업에 해당하는 서버 세팅 작업이 완료되면 개발자는 개발한 제품을 연관된 개발, 운영 서버에 배포하여 웹 서비스 준비를 할 수 있습니다

    클라이언트는 제품을 이용할수 있습니다


    CORS

     

    SOP : 애플리케이션 간에 출처가 다른 경우 스크립트 기반의 HTTP통신을 통한 리소스 접근이 제한되는 정책

    CORS : 이런 접근 제한의 예외 조항으로써 사전 설정을 통해 리소스에 선택적으로 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 정책

    브라우저는 SOP에 의해 기본적으로 다른 출처의 리소스 공유를 막지만 CORS를 사용하면 접근 권한을 얻을 수 있게 되는 것

     

    CORS 동작 방식

     

    프리플라이트 요청

    - 실제 요청을 보내기 전, OPTIONS 메서드로 사전 요청을 보내 해당 출처 리소스에 접근 권한이 있는지 부터 확인

    - 브라우저는 서버에 실제 요청을 보내기 전에 프리플라이트 요청을 보내고 응답 헤더의 ACCESS-CONTROL-ALLOW-ORIGIN으로 요청을 보낸 출처가 돌아오면 실제 요청을 보내게 된다

    - 마냑 요청을 보낸 출처가 접근 권한이 없다면 브라우저에서 CORS에러를 띄우게 되고 실제 요청은 전달 안됨

     

    단순 요청

    - 특정 조건이 만족되면 프리플라이트 요청을 생략, 요청을 보내는 것

     

    인증 정보를 포함한 요청

    - 요청 헤더에 인증 정보를 담아 보내는 요청

    - 출처가 다를 경우에는 별도의 설정을 하지 않으면 쿠키를 보낼 수 없다 (민감한 정보이기 때문)

    - 이 경우에는 프론트엔드, 서버 양특 모두 CORS 설정이 필요

     


    CORS 정책 설정 방법

     

    1. Global 설정 클래스를 이용

    - 특정 도메인에 모두 적용

     

    2. 애터네이션을 이용

    - 컨트롤러단에서 적용하는 방법

     

     

    애너테이션을 이용해 컨트롤러에서 설정하는 방법

    - @CrossOrigin 애너테이션을 이용해 컨트롤러 혹은 메서드에서 cors 정책을 설정

     

    @CrossOrigin // Controller에 애너테이션을 이용해 설정합니다.
    @RestController
    public class HelloController {
    
    	...
    
    }

    <컨트롤러 단에서 애너테이션을 애용해 cors 설정>

     

    애너테이션을 사용해 cors 설정을 하는 경우 옵션을 이용해 세부적인 설정을 추가할 수 있습니다

     

    @CrossOrigin(origins = "https://codestates.com")
    @RestController
    public class HelloController {
    	...
    }

     

     

     

    CSRF

    - CORS : 다른 출처, CSRF : 다른 사이트

     

    CSRF

    - 사이트 간 요청을 위조하는 공격 ( 신뢰할 수 있는 사용자를 가장해 웹 사이트에 원치 않는 명령을 보내는 방식)

     

    '공부 > spring' 카테고리의 다른 글

    @Entity  (0) 2023.09.07
    프록시 서버  (0) 2023.06.02
    애플리케이션 예외  (0) 2023.05.04
    Mapper  (0) 2023.05.03
    DTO  (0) 2023.05.01
Designed by Tistory.