B-des 웹 기초

HTTP 요청을 메서드, 상태코드, 폼 검증으로 해석하기

웹 흐름은 브라우저가 요청하고 서버가 응답한다는 한 줄보다 훨씬 세밀하다. 메서드 의미, 헤더, 본문, 검증 실패, 상태코드를 한 번에 놓아야 문제가 풀린다.

01

요청 구성

URL, 메서드, 헤더, 쿠키, 본문이 어떤 정보를 담는지 구분한다.

본문은 모든 요청에 있지 않다
02

라우팅

서버는 경로와 메서드 조합으로 처리 함수를 찾는다.

같은 URL도 메서드별 분기
03

입력 검증

필수값, 형식, 길이, 권한을 서버에서 다시 확인한다.

브라우저 검증은 우회 가능
04

응답 결정

성공, 잘못된 요청, 인증 필요, 권한 없음, 서버 오류를 상태코드로 드러낸다.

코드는 사용자 메시지와 별개
200
요청 성공 조회나 처리 결과가 정상적으로 반환되었음을 뜻한다.
본문 포함 가능
302
다른 위치로 이동 폼 제출 후 새로고침 중복을 막기 위해 리다이렉트할 수 있다.
Location 헤더 확인
400
요청 형식 오류 필수값 누락, 형식 오류, 파싱 실패처럼 클라이언트 입력이 문제다.
검증 메시지 제공
401/403
인증과 권한 실패 401은 로그인 필요, 403은 로그인했지만 허용되지 않는 상황이다.
둘을 섞지 않기

GET 오용 · 중복 제출 · 서버 검증 점검

GET 오용 삭제나 결제처럼 상태를 바꾸는 작업을 GET으로 처리하면 위험하다.
중복 제출 POST 후 새로고침 문제는 리다이렉트와 토큰으로 줄인다.
서버 검증 프론트 검증이 있어도 서버에서 권한과 입력을 다시 확인해야 한다.