HTTP

멍차·2024년 2월 14일
0

web

목록 보기
3/6

Hyper Text Transfer Protocol

인터넷에서 데이터를 주고받을 수 있는 프로토콜(규칙, 통신 규약)

주로 HTML 문서를 주고받는 데 쓰인다.

웹에서 네트워크로 서버끼리 통신을 할 때 형식을 규정함

HTTP 프로토콜로 데이터를 주고받기 위해서는 아래와 같이 요청을 보내고 응답을 받는다.

아래는 URL의 기본 구조

URL을 이용하면 서버에 특정 데이터를 요청할 수 있다.

여기서 요청하는 데이터에 특정 동작을 수행하고 싶을 때 HTTP 요청 메서드를 이용한다.

일반적으로 HTTP 요청 메서드는 HTTP Verbs라고 불리며 아래와 같이 주요 메서드를 갖고 있다.

  • GET : 존재하는 자원에 대한 요청
  • POST : 새로운 자원을 생성
  • PUT : 존재하는 자원에 대한 변경
  • DELETE : 존재하는 자원에 대한 삭제

때에 따라서는 POST 메서드로 PUT, DELETE의 동작도 수행할 수 있다.

HTTP 메시지

서버와 클라이언트 간에 데이터가 교환되는 방식

메시지 타입

  1. requst

클라이언트가 리퀘스트를 서버로 전달하는 메시지(요청)

  1. response

요청에 대한 서버의 답변

HTTP 메시지 구조

start line - 서버가 서버가 수행해야 할 동작(method), 목표주소(URL, 도메인 절대경로..), HTTP 버전
status line - 프로토콜 버전, 요청의 성공 여부, 상태 텍스트
Header - 요청에 대한 설명 또는 메시지 본문에 대한 설명, 리퀘스트에 대한 추가 정보를 담고 있음
Body - HTTP 리퀘스트가 전송하는 데이터를 담고 있는 부분
전송하는 데이터가 없다면 생략됨

HTTP 상태 코드

서버에서 설정해 주는 응답 정보

2xx - 성공

200번대의 상태 코드는 대부분 성공을 의미합니다.

  • 200 : GET 요청에 대한 성공
  • 204 : No Content. 성공했으나 응답 본문에 데이터가 없음
  • 205 : Reset Content. 성공했으나 클라이언트의 화면을 새로 고침하도록 권고
  • 206 : Partial Conent. 성공했으나 일부 범위의 데이터만 반환

3xx - 리다이렉션

300번대의 상태 코드는 대부분 클라이언트가 이전 주소로 데이터를 요청하여 서버에서 새 URL로 리다이렉트를 유도하는 경우입니다.

  • 301 : Moved Permanently, 요청한 자원이 새 URL에 존재
  • 303 : See Other, 요청한 자원이 임시 주소에 존재
  • 304 : Not Modified, 요청한 자원이 변경되지 않았으므로 클라이언트에서 캐싱된 자원을 사용하도록 권고. ETag와 같은 정보를 활용하여 변경 여부를 확인

4xx - 클라이언트 에러

400번대 상태 코드는 대부분 클라이언트의 코드가 잘못된 경우입니다. 유효하지 않은 자원을 요청했거나 요청이나 권한이 잘못된 경우 발생합니다. 가장 익숙한 상태 코드는 404 코드입니다. 요청한 자원이 서버에 없다는 의미죠.

  • 400 : Bad Request, 잘못된 요청
  • 401 : Unauthorized, 권한 없이 요청. Authorization 헤더가 잘못된 경우
  • 403 : Forbidden, 서버에서 해당 자원에 대해 접근 금지
  • 405 : Method Not Allowed, 허용되지 않은 요청 메서드
  • 409 : Conflict, 최신 자원이 아닌데 업데이트하는 경우. ex) 파일 업로드 시 버전 충돌

5xx - 서버 에러

500번대 상태 코드는 서버 쪽에서 오류가 난 경우입니다.

  • 501 : Not Implemented, 요청한 동작에 대해 서버가 수행할 수 없는 경우
  • 503 : Service Unavailable, 서버가 과부하 또는 유지 보수로 내려간 경우

0개의 댓글

관련 채용 정보