• 웹 통신 구조

    • 웹은 클라이언트(브라우저)와 서버 간의 통신으로 동작하며, 그 핵심은 HTTP 프로토콜이다.
    • Request (요청)
      • 사용자가 서버에 데이터를 요청하는 구조
      • 구성요소: Method(GET/POST 등), URL, Header, Body
    • Response (응답)
      • 서버가 클라이언트의 요청에 대한 결과를 반환
      • 구성요소: Status Code, Header, Body
  • 상태 관리

    • 쿠키
      • 저장위치 : 브라우저(서버로 자동 전송)
      • 수명 : 설정된 만료 시점
      • 목적 : 인증, 추적
    • 세션
      • 저장 위치 : 서버
      • 수명 : 브라우저 종료 시
      • 목적 : 사용자 상태 유지
    • 로컬스토리지
      • 저장 위치 : 브라우저 로컬
      • 수명 : 삭제 전까지
      • 목적 : 클라이언트 데이터 저장
  • DOM(Document Object Model)

    • HTML 문서의 구조를 객체 트리 형태로 표현한 모델
    • JavaScript를 통해 동적으로 요소를 수정 가능
  • AJAX (Asynchronous JavaScript and XML)

    • 서버와 비동기 통신을 하며 전체 페이지를 새로 고침하지 않음
    • XMLHTTPRequest기반
  • Fetch API

    • 최신 표준 방식
    • Promise 기반으로 직관적 사용 가능
  • SQL (Structured Query Language)

    • 데이터베이스와 직접 통신
    • 취약점: SQL Injection
  • ORM (Object-Relational Mapping)

    • 객체지향적으로 DB 제어 가능 (Ex: Django ORM)
    • SQL 인젝션 방지에 도움은 되나, 완전한 보안은 아님
  • 입력값 검증 (Input Validation)

    • 모든 사용자 입력은 반드시 서버단에서 검증해야 함
    • 검증 요소: 길이, 타입, 포맷, 특수문자 필터링 등
  • 세션 관리 (Session Management)

    • 로그인 상태 유지를 위해 사용
    • 일반적으로 서버가 생성한 Session ID를 브라우저의 쿠키에 저장
  • 보안 지침

    • 세션 탈취 방지를 위해 HTTPS, HttpOnly, Secure 옵션 사용
    • 로그인 후 세션 재생성 권장
    • 세션 타임아웃 설정