웹의 동작 원리 — 읽기 자료
GET(보여줘), POST(저장해줘) 등.
200 정상 / 404 없음 / 500 서버 오류.
전 차시에서는 「클라이언트가 서버에 부탁하고, 서버가 결과를 돌려준다」는 큰 그림을 봤습니다. 그런데 그 부탁과 결과가 실제로는 어떤 글자로 생겼을까요?
나중에 컨트롤러에서 데이터가 안 들어올 때 "내가 도대체 뭘 보냈는지" 확인할 방법이 없습니다. 디버깅의 첫 단계는 「내 요청이 진짜 그 모양으로 나갔는지」 검증하는 일입니다.
좋은 소식: HTTP 메시지의 구조는 단순합니다 — 3단 으로 끝납니다.
이 한 줄이 「어떤 방법(메서드)으로, 어디(경로)를, 어떤 버전(HTTP/1.1)으로 부르는지」를 모두 담습니다.
GET — 메서드 (동사). "보여줘"/search?q=spring — 경로 (어디로)HTTP/1.1 — 프로토콜 버전한 줄에 하나씩 적힌 「이름: 값」 형식의 메타 데이터입니다. 자주 보는 헤더:
Host — 어느 사이트에 보내는지User-Agent — 어떤 브라우저가 보냈는지Accept — 어떤 형식의 응답을 받고 싶은지Cookie — 가지고 있는 쿠키 (Part 5 에서 자세히)요청 메서드에 따라 다릅니다:
GET — 비어 있음 (보낼 게 없음, URL 의 ?q=spring 부분이 대신함)POST — 여기에 폼 데이터가 담김 (다음 차시에서 직접 확인)요청과 거의 같은 모양인데, 첫 줄이 「상태 라인」으로 바뀝니다. 가장 중요한 건 가운데의 세 자리 숫자입니다.
200 OK 가 99% 입니다. 평소엔 이거만 봅니다.
302 Found — 「여기로 가야 함」. 로그인 성공 후 메인으로 보낼 때 자주 등장.
404 Not Found — 그런 주소 없다 (URL 오타가 흔한 원인)403 Forbidden — 권한 없음500 Internal Server Error — 서버 코드가 어딘가에서 터진 것. 내 컨트롤러나 서비스 코드를 의심해야 할 신호.
오류가 나면 가장 먼저 상태 코드를 확인하세요. 4xx 면 "내 URL/요청이 잘못됐나?", 5xx 면 "내 서버 코드가 잘못됐나?" 의 방향이 갈립니다.
이번 과정에서는 두 개만 깊게 봅니다:
나머지 PUT(수정), DELETE(삭제)는 Part 6 REST API에서 만납니다. GET 과 POST 의 결정적 차이는 다음 차시에서 직접 폼을 보내며 확인합니다.
크롬에서 F12 를 누르고 Network 탭을 켠 뒤 새로고침 → 첫 줄을 클릭하면 오른쪽 패널이 열립니다.
그 안에 적힌 글자들이 정확히 위에서 본 「라인 + 헤더 + 바디」 구조입니다. 한 번 눈으로 매칭해두면 다시는 헷갈리지 않습니다.
웹 = 클라이언트 ↔ 서버의 요청·응답이라는 추상적인 그림.
요청·응답의 실제 글자 모양을 알고, 상태 코드 4개로 결과를 1초 만에 판단할 수 있다.