본문 바로가기

개발

HTTP에서 꼭 알아야 할 핵심 요소들에는 어떤 것들이 있을까

✅ 1. HTTP 메서드 (Methods)

요청의 의도를 나타내는 거야. 대표적으로:

메서드설명
GET 데이터 조회 (서버에서 정보 가져오기)
POST 새로운 데이터 생성 (폼 제출 등)
PUT 기존 데이터 전체 수정
PATCH 기존 데이터 부분 수정
DELETE 데이터 삭제

🧠 예시:

GET /users/123 HTTP/1.1 
POST /users HTTP/1.1

✅ 2. HTTP 상태 코드 (Status Codes)

서버가 클라이언트의 요청에 어떻게 응답했는지를 알려주는 숫자 코드야.

🔢 주요 코드 정리:

  • 200 OK: 정상 처리 완료
  • 201 Created: 생성 완료 (주로 POST 요청 결과)
  • 204 No Content: 성공했지만 응답 본문 없음
  • 400 Bad Request: 잘못된 요청
  • 401 Unauthorized: 인증 필요 (ex. 로그인 안함)
  • 403 Forbidden: 권한 없음
  • 404 Not Found: 요청한 리소스 없음
  • 500 Internal Server Error: 서버 에러

✅ 3. 요청(Request)와 응답(Response)의 구조

📨 요청 구조 예:

GET /api/users HTTP/1.1 
Host: example.com 
Authorization: Bearer abc123 
Content-Type: application/json

📦 응답 구조 예:

HTTP/1.1 200 OK 
Content-Type: application/json 

{ 
	"id": 1, 
    "name": "BG" 
}

✅ 4. 헤더 (Headers)

HTTP 메시지의 부가 정보를 담는 곳이야.

헤더의미
Content-Type 데이터 형식 (ex: application/json, text/html)
Authorization 인증 정보 (ex: Bearer token)
Accept 클라이언트가 원하는 응답 형식
Cookie 클라이언트가 서버에 전달하는 쿠키
Set-Cookie 서버가 클라이언트에 저장시키는 쿠키

✅ 5. 쿠키와 세션, 토큰 인증

  • 쿠키: 클라이언트에 저장되는 작은 데이터. 로그인 유지에 자주 사용.
  • 세션: 서버에서 사용자 정보를 저장.
  • JWT 토큰: 인증 정보를 담아 클라이언트가 직접 보유. 주로 Authorization 헤더에 포함.

✅ 6. CORS (Cross-Origin Resource Sharing)

  • 서로 다른 출처(origin) 간의 요청을 허용할지 말지 정하는 정책.
  • 예: 프론트엔드(3000포트)와 백엔드(8080포트)가 다를 경우 CORS 에러 발생 가능.
  • 서버에서 Access-Control-Allow-Origin 헤더로 허용 설정해야 함.

✅ 7. Postman이나 curl로 테스트

curl -X POST https://example.com/login \ 
	-H "Content-Type: application/json" \ 
    -d '{"username": "bg", "password": "1234"}'