HTTP 상태코드

  • 클라이언트에게 요청에 대한 처리 상태를 알려주는 코드값
  • 크게 1xx, 2xx, 3xx, 4xx, 5xx 로 분류

 

상태코드의 종류

  • 1xx
    • 요청이 수신되어 처리중인 상태를 의미

 

  • 2xx
    • 요청이 정상적으로 처리되었음을 의미
    • 요청이 성공했음을 의미하는 200, 서버에서 리소스를 성공적으로 생성함을 의미하는 201 등이 있음

 

  • 3xx
    • 요청을 완료하기 위해 추가 동작이 필요함을 의미
    • 리다이렉트 등의 추가 동작을 통해 요청을 처리해야함

 

  • 4xx
    • 클라이언트의 요청이 잘못되어 오류가 발생하였음을 의미
    • 요청에 문법이 잘못되었거나 리소스에 접근하기 위한 권한이 없는 경우, 요청한 리소스를 찾을 수 없는 등 잘못된 요청을 통해 오류가 발생한 경우

 

  • 5xx
    • 서버의 문제로 오류가 발생한 경우

 

'HTTP' 카테고리의 다른 글

SSL/TLS 프로토콜  (0) 2022.08.08
HTTP / HTTPS  (0) 2022.08.02
HTTP 헤더  (0) 2022.07.31
HTTP 메서드  (0) 2022.07.30
URL - 통합 자원 식별자  (0) 2022.07.30

HTTP 헤더

  • 클라이언트와 서버가 무엇을 해야하는지 결정하기 위해 사용되는 부가정보
  • 헤더 영역에 여러 헤더가 존재하며 키 : 값 형태로 하나의 헤더를 구성

 

HTTP 헤더의 종류

  • 일반 헤더
    • 클라이언트와 서버 양쪽, 즉 요청과 응답에 모두 사용되는 헤더
    • 메시지 바디로 전송되는 데이터와는 관련이 없는 헤더 
      • ex) Date: Sat, 30 Jul 2022 15:35:02 GMT
  • 요청 헤더
    • HTTP 요청 메시지에 사용되는 헤더
    • 요청을 통해 서버로부터 클라이언트가 받고자 하는 데이터의 정보나 클라이언트 자체에 대한 정보를 포함
      • ex) Accept: text/html
  • 응답 헤더
    • HTTP 응답 메시지에 사용되는 헤더
    • 서버가 클라이언트에게 서버에 관련된 정보를 제공
      • ex) Server: Apache
  • 엔티티 헤더
    • HTTP 메시지의 본문에 관련된 정보를 제공
      • ex) Content-Type: text/html; charset=utf-8

브라우저의 개발자 도구를 통해 확인할 수 있는 헤더 정보들

'HTTP' 카테고리의 다른 글

HTTP / HTTPS  (0) 2022.08.02
HTTP 상태코드  (0) 2022.07.31
HTTP 메서드  (0) 2022.07.30
URL - 통합 자원 식별자  (0) 2022.07.30
HTTP 메시지  (0) 2022.07.29

HTTP 메서드

  • 클라이언트가 서버에게 요청시 서버에게 무엇을 해야하는지 알려주는 정보

 

HTTP 메서드의 종류

  • GET
    • 서버의 리소스를 조회
    • 서버에 전달하고 싶은 데이터가 있을 경우 쿼리 파라미터를 통해서 전달
  • POST
    • 서버에 처리해야 할 데이터를 전송.
    • 데이터는 HTTP 메시지 바디를 통해 전달
    • 일반적으로 데이터를 저장, 등록할 때 사용
  • PUT
    • 서버에 있는 리소스를 새로운 데이터로 대체
    • 파일 시스템에서 파일을 새로운 파일로 덮어쓰기와 같은 개념
  • PATCH
    • 서버에 있는 리소스를 전송한 데이터를 통해 수정
    • 파일 시스템에서 파일을 열어 수정한 것과 같은 개념
  • DELETE
    • 서버에 있는 리소스를 삭제

 

HTTP 메소드의 안정성 / 멱등 / 캐시가능여부

출처 - https://ko.wikipedia.org/wiki/HTTP

  • 안정성
    • 서버에게 리소스를 요청시 서버에 어떠한 작용도 없다는 것을 의미함
      • 요청시 리소스 및 관련 데이터를 조회하는 GET, HEAD, OPTIONS, TRACE 메소드의 경우 안전한 메소드에 속함
      • 요청이 리소스를 등록, 수정, 삭제 등 변경을 요청하는 POST, PUT, DELETE, PATCH 메소드의 경우 안전하지 않음
  • 멱등
    • 서버에게 같은 내용의 요청을 여러번 하더라도 결과가 동일한 경우 (서버에서 단일 클라이언트의 요청만 처리할 경우)
    • GET의 경우 몇 번을 요청하더라도 같은 결과가 조회됨
    • POST의 경우 요청 수에 따라 결과가 달라질 수 있음 (ex - 게시판에 게시글을 등록 시. 같은 내용으로 여러번 등록시 처음 등록된 글과 마지막에 등록된 글은 내용만 동일한, 다른 게시글 번호를 가진 다른 리소스)
    • PUT의 경우 요청 수에 상관없이 같은 내용으로 요청한다면 최종적으로 그 내용으로 리소스가 대체됨
    • DELETE의 경우 요청 수에 상관없이 해당 리소스가 삭제된 상태가 됨
  • 캐시 가능
    • 응답 결과 리소스를 캐시, 저장할 수 있는 경우

'HTTP' 카테고리의 다른 글

HTTP / HTTPS  (0) 2022.08.02
HTTP 상태코드  (0) 2022.07.31
HTTP 헤더  (0) 2022.07.31
URL - 통합 자원 식별자  (0) 2022.07.30
HTTP 메시지  (0) 2022.07.29

URL - Uniform Resource Identifier

  • 통합 자원 식별자
  • 리소스가 어디 있는지 설명하는 것으로 리소스를 식별

 

URL 의 구조

클라이언트에서 요청 URL에 따라 서버에 요청

  • 스키마 - 리소스를 요청하기 위해 어떤 프로토콜을 사용해야하는지에 대한 정보
  • 호스트 주소 - 리소스에 접근할 수 있는 서버의 IP 주소
  • 포트 번호 - 리소스를 호스팅하고 있는 장비 내에서 리소스에 접근할 수 있는 프로세스를 식별하기 위한 값
  • 리소스 경로 - 리소스가 서버의 어느 경로에 있는지 알려주는 정보
  • 쿼리 파라미터 - 서버 애플리케이션이 요청을 처리하기 위해 필요한 추가 정보를 전달하기 위해 사용
    • 키=값 형태로 한 쌍을 구성하며 파라미터가 여러개일 경우 & 문자로 파라미터 쌍을 구분함

'HTTP' 카테고리의 다른 글

HTTP / HTTPS  (0) 2022.08.02
HTTP 상태코드  (0) 2022.07.31
HTTP 헤더  (0) 2022.07.31
HTTP 메서드  (0) 2022.07.30
HTTP 메시지  (0) 2022.07.29

HTTP 메시지

  • HTTP 메시지는 크게 요청 메시지와 응답 메시지로 구분된다.
  • HTTP 메시지는 크게 시작줄, 헤더, 본문으로 구조가 구분된다.

 

HTTP 요청 메시지

  • 클라이언트는 서버 쪽에서 요청한 데이터를 처리하기 위한 정보를 요청 메시지에 담아 전달한다.
    • 시작줄 - 시작줄에는 요청 리소스 URL, HTTP 메소드 정보, HTTP 버전 정보를 담는다.
    • 헤더 - 서버 쪽에서 요청을 처리하기 위한 추가 정보, 컨텐츠 길이, 타입, 보안정보 등의 정보를 키:값 형태로 담는다.
    • 메시지 바디(본문) - 요청을 통해 처리할 데이터를 담는다. 요청의 종류에 따라 비어있을 수 있다.

 

HTTP 응답 메시지

  • 서버는 클라이언트에게 요청을 처리한 응답결과를 응답 메시지에 담아 전달한다.
    • 시작줄 - 시작줄에는 HTTP 버전 정보, 응답코드, 응답코드에 대한 사유 정보를 담는다.
    • 헤더 - 클라이언트 쪽에서 응답받은 데이터를 처리하기 위한 정보를 키:값 형태로 담는다.
    • 메시지 바디(본문) - 클라이언트가 요청한 데이터를 담는다. 요청에 따라 비어있을 수 있다.

다음글

'HTTP' 카테고리의 다른 글

HTTP / HTTPS  (0) 2022.08.02
HTTP 상태코드  (0) 2022.07.31
HTTP 헤더  (0) 2022.07.31
HTTP 메서드  (0) 2022.07.30
URL - 통합 자원 식별자  (0) 2022.07.30

웹 클라이언트와 웹 서버의 기본 흐름

웹 클라이언트와 웹 서버는 기본적으로 HTTP 프로토콜로 의사소통하며 요청과 응답까지의 하나의 작업 단위를 HTTP 트랜젝션이라고 한다.

 

  1. 클라이언트에서 서버에게 요청
    • 필요한 데이터를 조회하거나 저장, 수정, 삭제 등의 요청을 보낸다. 이 때, 요청 처리에 필요한 정보들을 HTTP 요청 메시지에 담아서 보낸다.
  2. 서버에서 클라이언트에게 응답
    • 서버는 클라이언트의 요청을 받아 HTTP 요청 메시지에 있는 정보를 참고하여 요청을 처리한다. 요청을 처리한 뒤 응답 결과(처리 결과)를 HTTP 응답 메시지에 담아 클라이언트에 보낸다.

 

다음글

'Server' 카테고리의 다른 글

WEB Server / WAS  (0) 2022.08.03

+ Recent posts