네트워크 5주차 정리

fpg1·2023년 8월 25일

컴퓨터네트워크 5주차 스터디노트

면접예상질문

  • 네트워크 더 알아보기

쿠키와 세션에 대해서 설명해주세요

  • 쿠키는 서버가 사용자 웹 브라우저에 전송한 데이터 조각이다
    브라우저는 그 데이터 조각을 저장하고, 동일한 서버에 재 요청시 저장된 데이터를 함께 전송한다
    쿠키를 통해 서버는 두 요청이 동일한 브라우저에서 들어온건지 판단할 수 있다
  • 세션은 클라이언트(브라우저) 별로 서버에 저장되는 정보이다
  • 상태유지와 관련해서는 세션은 SessionID를 사용해서 어떤 사용자가 서버에 로그인 되어있음 지속되는 이 상태를 세션이라 한다

SOP와 CORS에 대해서 설명해주세요

  • 출처(Origin): ProtocolHost, Port를 합친 URL
  • SOP(Same Origin Policy): 동일한 출처에서만 리소스를 공유할 수 있다는 정책
  • CORS(Cross-Origin Resource Sharing): 다른 출처의 리소스 공유에 대한 허용/비허용 정책

REST API 란 무엇일까요

  • 로이필딩이 웹(HTTP) 설계에 비해 제대로 사용되지 못하는 모습에 제안한 아키텍처
  • HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation 을 적용하는 것
  • 리차드슨이 제안한 REST 성숙도 모델
    • 0단계: HTTP 프로토콜 사용
    • 1단계: 개별 리소스와의 통신을 준수한다, 엔드포인트 작성방법을 준수한다
    • 2단계: CRUD에 맞게 적절한 HTTP 메소드를 사용한다
    • 3단계: HATEOS를 적용한다

XXS 공격이 무엇이고 어떻게 예방할 수 있는지 설명해주세요

  • 악의적인 용도로 웹사이트에 스크립트를 삽입하는 공격기법
  • 예방방법: 쿠키에 HttpOnly옵션(session Hijacking 방지), 태그에 사용되는 문자들을 치환한다

SQL Injection이 무엇이고 어떻게 예방할 수 있는지 설명해주세요

  • SQL Injection이란 악의적인 사용자가 임의의 SQL 문을 주입하고 실행되게하는 행위
  • 예방방법: Prepared Statement 구문을 사용하면 파라미터 값이 쿼리가 아닌 문자열로 인식된다

REST API에 대한 제약 조건들에 대해서 설명해주세요

  1. Client-Server: 관심사의 명확한 분리
  2. Stateless: 서버에서 클라이언트 상태정보 저장하지 않기
  3. Cacheable: 응답에 해당 요청은 캐시가 가능한지 불가능한지 명세하기
  4. Uniform Interface: 리소스에 대해 식별할 수 있어야하고, 자원에 대한 표현과 작업에 대한 메타데이터, 자기서술적메시지(HATEOAS)
  5. Layered System: 계층구조로 확장성 있는 시스템
  6. Code-on-Demand: 실행코드로 기능확장

토큰에 대해 설명해주세요

  • JWT 같은 토큰 인증 방식은 세션과 달리 stateless하다 반면 단점으로는 유지하고 있는 상태들을 제어하기 어렵다
  • 서버는 요청에 토큰 값이 실려오면 1번 (헤더)와 2번 (페이로드)의 값을 서버의 비밀키와 함께 돌려서 계산된 결과값이 3번 서명값과 같은지 비교한다

URL, URI, URN 차이가 뭘까요?

  • URI은 두 부분집합 URL, URN을 가진다
    URI: 리소스가 어디에 있는지 설명
    URN: 이름만으로 식별

웹 캐시에 대해서 설명해주세요

  • 클라이언트가 웹 서버에 요청할 때 정적 컨텐츠를 특정 위치에 저장하여 웹 서버에 해당 컨텐츠를 매번 요청하고 받는 것이 아니라 특정 위치에서 불러옴으로써 응답시간을 줄이고, 서버 트래픽 감소효과를 가져오는 것

포워드 프록시에 대해서 설명해주세요

  • 클라이언트와 인터넷 사이에 프록시가 위치해서 클라이언트 대신 서버에 요청을 보내주는 역할을 한다
  • 이점으로는 로컬 네트워크와 인터넷 사이 오가는 트래픽을 제어, 부적절한 접근을 필터링할 수 있다

리버스 프록시에 대해서 설명해주세요

  • 서버와 인터넷 사이에 위치해서 서버의 응답을 클라이언트에게 대신 보내주는 역할을 하는 프록시
  • 웹서버의 바로 앞에 위치
  • 웹서버의 보안기능 추가, 캐시를 통해 응답 속도를 높혀줄 수 있다

추가공부

JWT

  • 매번 인가를 받을 때 쓰는 수명짧은토큰이 액세스 토큰이고
    액세스 토큰을 재발급 받을 때 쓰는것이 리프레시 토큰이다

캐시

  • 데이터나 값을 미리 복사해놓은 임시저장소
  • 캐시에 데이터를 미리 복사 해놓으면 계산이나 접근시간 없이 더 빠른 속도로 데이터에 접근할 수 있다
  • Etag, Cache-Control, 파일버전번호를 함께 사용하면 효율적인 캐싱이 가능하다

프록시

  • 서버와 클라이언트 사이의 중계가로서 클라이언트 대신 서버와 대리로 통신을 수행하는 것
  • 이런 프록시 역할을 하는 서버를 프록시 서버라고 함

프록시 서버

  • 캐시를 통해 자원들을 저장할 수 있다
  • 프록시 서버를 거치는 요청과 응답을 확인할 수 있다
    • 필터, 로깅 가능
  • 프록시 서버로 넘어온 데이터를 조작할 수 있다
    • TransCoder: 데이터 압축과 언어변환
    • Anonymizer(익명화)
profile
backend

0개의 댓글