웹 기술-2 (3주차)

sangeun·2026년 5월 3일

index.php

<form action="loginAction.php" method=""GET>
ID : <input type="text" name="id"><br>
PW : <input type="password" name="pw"><br>
<input type="submit" value="LOGIN">
</form>

loginAction.php

<?
    $id=$_GET["id"];
    $pw=$_GET["pw"];

    echo "ID : {$id}<br>";
    echo "pw : {$pw}<br>";
?>

HTTP 프로토콜

0.9 : just GET

1.0 : 비 연결지향 방식(비효율적)

1.0+ : Keep-Alive 커넥션

1.1 : Keep-Alive 커넥션 패시브.

2.0 : 성능 업그레이드

TCP/IP 통신

  • 통신하기 위한 중요한 정보: IP(주소)-물리적 호스트 대상 찾기, Port(구체적 위치)-논리적 대상 찾기

연결 관리 방식

  • 비 지속 연결(옛날)
  • 지속 연결(Keep-Alive)

메시지 구조

  • 시작줄
  • 메시지 헤더
  • 메시지 바디

/r(0x0D) /n(0x0A)과 같은 개행 문자로 구분

메시지 헤더

  • 메시지를 구성하는 요소로 클라이언트와 서버가 무엇을 할지 결정하고 처리하기 위한 정보들이 들어있으며, 요청 메시지와 응답메시지에는 반드시 메시지 헤더 포함.

요청 메시지(Request Message)

응답 메시지(Response Message)

HTTP 메서드 - GET/POST 메서드

  • 클라이언트에서 서버에 데이터를 전달할 때 사용되는 방식

HTTP 상태 코드

  • 클라이언트 요청 시. 서버의 요청 상세 결과

Status Code:

  • 1XX: 정보
  • 2XX: 성공
  • 3XX: 리다이렉션
  • 4XX: 클라이언트 에러
  • 5XX: 서버 에러
  • 대표적인 예: 200(OK) 302(Found) 304(Not Modified) 400(Bad Request) 403(Forbidden) 404(Not Found) 505(Internal Server Error)

쿠키와 세션

  • 상태 유지 및 관리 필요성 및 사용자 인증 수단을 위한 쿠키 사용

클라이언트로 쿠키 발급 시 Set-Cookie 헤더로 클라이언트 쿠키 값 세팅 → 상태 관리

  • 웹 서버에서 발급시 클라이언트 하드 디스크에 텍스틓형태 저장(열람 가능)
  • 발급 과정
    • if 로그인 시
    • 서버는 응답에 따라 쿠키값을 클라이언트에 대해 세팅
    • 따라서, 홍길동이 재접근시 자동 쿠키 세팅으로 서버는 사용자 식별.
    • 이후, 로그아웃 시. delete
  • 문제점: 쿠키 값을 알고 있으면 재사용 가능성 o
  • 쿠키값이 평문이면 변조 위협이 있기에 관련 암호화 과정과 유효기간 등의 발급 로직을 구현해야 함.
  • 웹 서버에서 발급 시 웹 브라우저 캐시에 저장
  • 메모리에 저장 시 세션값은 암호화가 아닌 임의의 값
  • 발급 과정:
    • 지속 쿠키와 동일 하나. 세션 정보자체를 삭제를 해버리기에 폐기 후 재사용 위험x

왜 지속 쿠키를 사용할까?

  • 대규모 웹 서비스 시 세션 관리에 대한 서버의 부하 극심
  • → 웹 서비스 규모와 인프라 구성에 알맞게 사용

웹 아키텍쳐

  • 클라이언트 웹서버 데이터베이스 형태 → 프론트/백 엔드

동작 원리 분석

  • 웹 사이트 접속 - URL 입력
  • 도메인 - IP 변환 작업
    • 로컬 DNS 캐시 확인
    • hosts 파일 참조
    • DNS 서버 질의
  • HTTP 요청 메시지 제작

웹 사이트 구조 분석

  • HTML , CSS
  • JAVASCRIPT(동적 구성)
  • form을 활용해 요청 응답

⇒ Ajax 기반 웹 사이트 구조

  • 자바스크립스를 통해 요청/응답
  • → 백엔드의 부하 낮춤(부분만을 요청)

웹 서버 동작 원리

  • 웹 서버측으로 요청 메시지를 보내면 서버는 요청된 자원 유/무 검토 후 응답 메시지 보냄.

  • web application 환경의 ws/was 구성
    • Apache + Tomcat

웹 서버 웹 어플리케이션 서버 분리 이유

  • 정적 자원 / 동적 자원 구분
  • but. was에서 정적 자원 처리 가능

데이터베이스

  • 동적인 컨텐츠를 제공하기 위해 데이터를 저장해두는 저장소

Server-Side / Client-Side

  • 보안 검증은 서버측에서. → 클라이언트 측에서의 보안 검증 절차는 js인데 js는 변조가 쉽다.

0개의 댓글