스킬캠퍼스

오늘 끝나면

HTTP, 보이지 않는 대화

  • HTTP, 보이지 않는 대화의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 HTTP,이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

요청과 응답 — GET·POST·상태코드(404의 정체) 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

개발 · Day 13 / 인터넷 · 웹

요청을 보내면
응답이 온다

웹페이지가 뜰 때 브라우저가 묻고 서버가 답한다. 그 대화의 규칙이 HTTP다.

P.01개발 · Day 13

묻고, 답한다

웹은 묻고 답하기다. 한쪽이 요청하고, 다른 쪽이 응답한다.

주소창에 naver.com을 치면, 내 브라우저가 네이버 서버에 "그 페이지 좀 줘"라고 요청(request)을 보낸다. 묻는 쪽이 클라이언트다(보통 내 브라우저나 앱).

서버는 페이지를 찾아 응답(response)으로 돌려준다. 답하는 쪽이 서버다. 이 한 번의 왕복이 웹의 가장 작은 단위다.

항상 클라이언트가 먼저 묻는다. 서버는 요청을 받기 전엔 먼저 말하지 않는다.

요청 → 응답
클라이언트브라우저묻는 쪽서버답하는 쪽① 요청 (request)② 응답 (response)

항상 클라이언트가 먼저 묻고, 서버는 그제야 답한다. 요청 없으면 응답 없다

P.02개발 · Day 13

GET 읽기, POST 보내기

요청엔 "뭘 하려는지"를 적는다. 그게 메서드다. 가장 많이 쓰는 둘만 알면 된다.

GET읽기다. "그 정보 좀 보여줘"다. 페이지를 열거나 목록을 불러올 때 쓴다. 서버 것을 바꾸지 않고 가져오기만 한다.

POST보내기다. "이 데이터 받아서 저장해"다. 로그인이나 글쓰기, 회원가입처럼 서버에 뭔가 남길 때 쓴다. 보낼 내용을 요청에 같이 실어 보낸다.

같은 주소라도 메서드가 다르면 뜻이 달라진다. /login에 GET은 "로그인 화면 줘", POST는 "이 아이디와 비번으로 로그인해"다.

메서드, 무엇을 할지
GET읽기, 가져오기만서버데이터를 받아옴POST보내기, 저장하기서버데이터를 보낸다(로그인·글쓰기)

GET은 서버에서 받아오기만, POST는 서버로 보내 남긴다. 방향이 반대다

P.03개발 · Day 13

직접 요청을 보내본다

직접 요청을 보내보면 단번에 이해된다.

오른쪽에서 메서드와 경로를 고르고 요청을 보내면 작은 가짜 서버가 응답을 돌려준다. /products에 GET을 보내면 상품 목록이, POST를 보내면 "등록됨"이 온다.

/products/1에 POST를 보내면 서버가 거절한다. 읽기만 되는 경로이기 때문이다. 같은 주소도 메서드에 따라 받기도 하고 거절하기도 한다.

맨 아래 서버 고장내기를 켜면 내 요청은 멀쩡한데 서버가 터질 때 어떤 답이 오는지 보인다.

HTTP 대화 실험실
HTTP 대화 실험실 · 요청을 보내고 응답을 받아본다
① 메서드, 뭘 할지
② 경로, 어디로
클라이언트 → 서버 (요청)
GET /products
위에서 메서드·경로를 고르고 [요청 보내기]를 눌러 본다
같은 경로라도 메서드가 다르면 응답이 달라진다 · 상태코드 앞자리가 2면 성공, 4면 내 잘못, 5면 서버 잘못
P.04개발 · Day 13

200·404·500, 답의 첫마디

응답은 늘 세 자리 숫자로 시작한다. 그게 상태코드다. "어떻게 됐는지"를 한 단어로 요약한다.

외울 건 앞자리뿐이다. 2로 시작하면 성공이다. 200은 "잘 됐음, 여기 있음"이다. 가장 자주 보는 답이다.

4로 시작하면 요청한 쪽 잘못이다. 404는 "그런 페이지 없음"이다. 주소를 잘못 쳤거나 페이지가 지워진 경우다.

5로 시작하면 서버 잘못이다. 500은 "서버가 처리하다 터짐"이다. 내 요청은 멀쩡한데 서버 쪽 코드가 죽은 것이다. 앞자리만 봐도 누구 탓인지 바로 안다.

상태코드, 앞자리가 핵심
앞자리만 보면 누구 탓인지 안다200앞자리 2성공잘 됐음, 여기 있음404앞자리 4내 잘못그런 페이지 없음500앞자리 5서버 잘못서버가 터짐

2 성공 · 4 요청한 내 잘못 · 5 서버 잘못. 세 자리 첫 숫자가 핵심

P.05개발 · Day 13

헤더와 바디, 봉투와 알맹이

요청도 응답도 두 부분으로 나뉜다. 헤더(header)바디(body)다. 편지에 비유하면 딱 맞는다.

헤더는 봉투에 적는 정보다. 어떤 형식인지, 누가 보냈는지, 길이가 얼만지 같은 메타 정보가 들어간다. 사람은 잘 안 보지만 컴퓨터가 읽고 처리한다.

바디는 알맹이다. 실제로 주고받는 내용이다. GET 요청의 응답 바디엔 페이지 내용이, POST 요청의 바디엔 보낼 데이터(아이디나 비번 등)가 담긴다.

정리하면 클라이언트가 메서드 + 경로 + 헤더 + 바디로 묻고, 서버가 상태코드 + 헤더 + 바디로 답한다. 이 단순한 왕복이 웹 전체를 굴린다.

코드 보기
GET /products/1 HTTP/1.1
Host: shop.com          # ← 헤더(봉투)
Accept: application/json

# (GET은 보통 바디 없음)

200 OK                  # ← 상태코드
Content-Type: application/json   # 헤더

{ "id": 1, "name": "키보드" }    # ← 바디(알맹이)
요청·응답의 구조
요청 (클라이언트가 만듦)GET /products/1Host · Accept …↑ 헤더(봉투)바디(GET은 보통 없음)응답 (서버가 만듦)200 OK상태코드 + 헤더{ id:1, ... }↑ 바디(알맹이)헤더 = 봉투형식·길이·보낸이바디 = 알맹이실제 내용

편지처럼 봉투(헤더)에 정보, 안(바디)에 알맹이를 담아 주고받는다

3줄 요약

  1. 1요청과 응답 — GET·POST·상태코드(404의 정체)
  2. 2HTTP, 보이지 않는 대화은 코딩 기본 → 인터넷과 웹 → 프론트/백엔드 → 데이터 → 배포 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

HTTP,

요청과 응답 — GET·POST·상태코드(404의 정체)

입력

프로그램이 받아들이는 값이나 사용자 행동

규칙

입력을 처리하는 코드의 절차