System 17

Proxy & Nginx란?

Proxy & Nginx란? 📌 Nginx Nginx는 경량 웹 서버입니다. 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용되기도 하고, Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 합니다. Nginx는 Event-Driven 구조로 동작하기 때문에 한 개 또는 고정된 프로세스만 생성하여 사용하고, Nginx는 새로운 요청이 들어오더라도 새로운 프로세스와 쓰레드를 생성하지 않기 때문에 프로세스와 쓰레드 생성 비용이 존재하지 않고, 적은 자원으로도 효율적인 운용이 가능합니다. 이러한 Nginx의 장점 덕분에 단일 서버에서도 동시에 많은 연결을 처리할 수 있습니다. Apache 의 C10..

System/네트워크 2022.03.31

교차 출처 리소스 공유 (CORS) 이해하기

교차 출처 리소스 공유 (CORS) 이해하기 📌 CORS(Cross-Origin Resource Sharing)란? 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요청을 실행합니다. 교차 출처 요청의 예시: https://domain-a.com의 프론트 엔드 JavaScript 코드가 XMLHttpRequest를 사용하여 https://domain-b.com/data.json을 요청하는 경우. 보안 상의 이유로, 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한합니다. 다른 출처..

System/네트워크 2022.03.31

XSS, CSRF 이해하기

XSS, CSRF 이해하기 📌 XSS(Cross-Site Scripting)란? 사이트 간 스크립팅(또는 크로스 사이트 스크립팅, 영문 명칭 cross-site scripting, 영문 약어 XSS)은 웹 애플리케이션에서 많이 나타나는 취약점의 하나로 웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점이다. 주로 여러명의 사용자가 보게 되는 게시판에 악성 스크립트를 담은 글을 올리는 형태로 공격한다. 이를 통해 사용자의 쿠키나 세션을 탈취하거나, 자동으로 비정상적 기능을 수행하게 하는 등의 공격이 가능해진다. 공격 방법에 따라 Stored XSS와 Reflected XSS로 나뉜다. Stored XSS는 게시판처럼 사용자가 정보를 서버에 업로드하는 곳에 XSS공격이 담긴 데이..

System/네트워크 2022.02.20

웹 페이지 렌더링 방식(CSR vs SSR vs SSG)

CSR vs SSR vs SSG Client Side Rendering (CSR) 클라이언트(브라우저)에서 웹 페이지를 렌더링하는 것이다. 모든 로직, 데이터 가져오기, 템플릿, 라우팅은 서버가 아닌 모두 클리이언트에서 처리된다. CSR의 경우 자바스크립트 번들의 크기의 영향을 많이 받기 때문에 적극적인 코드 분할(code splitting)을 고려해야 하며, "필요한 것만 필요할 때만 제공"해야 한다. CSR 동작 방식 일반적으로 아래와 같이 동작한다. 사용자가 웹 페이지를 방문하면(request), 브라우저는 최소한의 HTML 파일을 다운로드(response) 한다. 이 HTML 파일은 script, meta, link 등의 태그를 포함하며, 빈 컨텐츠의 index.html 파일이라고 보면 된다. 브..

System/네트워크 2022.01.26

REST API 설계하기

REST API 설계하기 참고 리소스 원형 - 도큐먼트 : 객체 인스턴스나 데이터베이스 레코드와 유사한 개념 - 컬렉션 : 서버에서 관리하는 디렉터리라는 리소스 - 스토어 : 클라이언트에서 관리하는 리소스 저장소 1. REST API 설계 기본 규칙 1. URI는 정보의 자원을 표현해야 한다. 1-1 resource는 동사보다는 명사를, 대문자보다는 소문자를 사용한다 1-2 resource의 도큐먼트 이름으로는 단수 명사를 사용해야 한다. 1-3 resource의 컬렉션 이름으로는 복수 명사를 사용해야 한다. 1-4 resource의 스토어 이름으로는 복수 명사를 사용해야 한다. 2. 자원에 대한 행위는 HTTP Method(GET, PUT, POST, DELETE 등)로 표현한다. 2-1.URI에 HT..

System/네트워크 2021.12.23

REST API & RESTful 이란?

1. REST의 구체적인 개념 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다. 2. REST 구성 요소 2.1 자원(Resource): URI -모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다. -자원을 구별하는 ID는 ‘/groups/:group_id’와 같은 HTTP URI 다. -Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청한다. 2.2 행위(Verb): HTTP Method -HTTP 프로토콜의 Method를 사..

System/네트워크 2021.12.23

URL과 URI의 차이

URI URI는 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)를 의미한다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스다. URL URL은 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다. URI의 서브셋이다. 비록 URL은 URI의 서브셋이지만 URI와 URL의 가장 큰 차이점은 바로 아래와 같다 URI는 식별하고, URL은 위치를 가르킨다. 두 주소는 모두 index.html을 가리키고 있다. 첫번째 주소는 웹서버의 실제 파일 위치를 나타내는 주소이므로 URI이면서 URL이다. 두번째 주소는 실제로 index라는 파일이 웹서버에 존재하지 않으므로 URL은 아니다. 하지만 서..

System/네트워크 2021.12.23