2 minute read

HTTP(Hyper Text Transfer Protocol)

HTTP는 웹 서버와 클라이언트 간에 정보를 주고받는 프로토콜입니다. 이것은 웹 브라우징을 비롯한 웹 애플리케이션에서 주로 사용됩니다. HTTP를 통해 클라이언트(일반적으로 웹 브라우저)가 서버에 요청을 보내고, 서버는 그 요청에 대한 응답을 반환합니다. 이를 통해 웹 페이지의 로딩, 폼 제출, AJAX 호출 등이 이루어집니다.

HTTP는 상태를 유지하지 않는(stateless) 프로토콜이며, 각각의 요청은 독립적으로 처리됩니다. 클라이언트와 서버 간의 상태 정보를 저장하려면 프로그래밍, 로컬 스토리지, 쿠키, 세션과 같은 메커니즘을 사용합니다.

HTTPS(Hyper Text Transfer Protocol Secure)

HTTPS는 HTTP의 보안 버전입니다. HTTPS를 사용하면 데이터가 암호화되며, SSL 또는 TLS 프로토콜을 사용하여 통신을 보호합니다. 웹 호스트는 HTTPS를 구현하기 위해 SSL/TLS 인증서를 설치해야 합니다.

HTTP METHODS

HTTP 메서드는 클라이언트가 서버에게 수행하길 원하는 동작을 나타냅니다. 가장 일반적으로 사용되는 HTTP 메서드에는 다음이 있습니다:

  • GET: 리소스를 요청하고 가져옵니다.
  • POST: 서버에 데이터를 제출하고 저장합니다.
  • PUT: 서버에 이미 존재하는 데이터를 업데이트합니다.
  • DELETE: 서버에서 데이터를 삭제합니다.

HTTP HEADERS FIELDS

HTTP 요청 및 응답은 헤더 필드를 포함하며, 이러한 헤더는 요청 또는 응답에 대한 추가 정보를 제공합니다. 이 정보는 요청이나 응답의 성격, 형식, 지원 가능한 압축 방법, 인증 정보, 캐시 관리, 언어 및 문자 인코딩 등을 포함합니다.

클라이언트 측에서는 사용자 에이전트 정보, 쿠키, 요청한 페이지의 내용 형식 등을 서버로 전달하고, 서버 측에서는 요청의 성공 여부, 캐시 지시자, 응답 내용의 유형, 서버의 정보 등을 클라이언트에게 알려줍니다.

흔히 볼 수 있는 HTTP 헤더에는 User-Agent, Content-Type, Content-Length, Cache-Control, Authorization, Set-Cookie, Server, Date 등이 있습니다.

HTTP 상태 코드

HTTP 상태 코드는 클라이언트가 서버로 보낸 요청에 대한 처리 결과를 나타내는 숫자 코드입니다. 아래에 주요 HTTP 상태 코드 범주와 일반적인 상태 코드 몇 가지를 설명하겠습니다:

1xx (Informational): 이 범주의 상태 코드는 요청이 받아들여졌거나 처리 중임을 나타내며, 추가 작업이 필요하지 않습니다. 주로 처리 진행 상태에 대한 정보를 전달하는 데 사용됩니다.

  • 100 (Continue): 요청이 계속되어야 함을 나타냅니다. 일반적으로 요청 본문이 큰 경우 사용됩니다.

2xx (Success): 이 범주의 상태 코드는 요청이 성공적으로 처리되었음을 나타내며, 클라이언트가 요청한 동작을 성공적으로 수행했습니다.

  • 200 (OK): 요청이 성공적으로 처리되었고 요청한 데이터가 제공됩니다.
  • 201 (Created): 요청에 의해 새로운 리소스가 성공적으로 생성되었습니다.

3xx (Redirection): 이 범주의 상태 코드는 추가 조치가 필요하며, 클라이언트를 새로운 위치로 리디렉션하거나 다른 동작을 수행해야 합니다.

  • 301 (Moved Permanently): 리소스가 새로운 URL로 영구적으로 이동했음을 나타냅니다.

4xx (Client Error): 이 범주의 상태 코드는 클라이언트 측에서 발생한 오류를 나타냅니다. 요청이 유효하지 않거나 필수 정보가 누락되었을 때 사용됩니다.

  • 400 (Bad Request): 요청이 잘못되었거나 서버에서 이해할 수 없음.
  • 401 (Unauthorized): 클라이언트가 인증되지 않았거나 권한이 없음.
  • 404 (Not Found): 요청한 리소스를 찾을 수 없음.

5xx (Server Error): 이 범주의 상태 코드는 서버 측에서 오류가 발생했음을 나타냅니다. 클라이언트 요청은 유효하지만 서버에서 처리할 수 없는 경우에 사용됩니다.

  • 500 (Internal Server Error): 서버에서 알 수 없는 오류 또는 예기치 않은 상황이 발생했음

HTTP/2

HTTP/2는 HTTP의 다음 세대 프로토콜로, 여러 개의 요청 및 응답을 동시에 처리하고 다양한 성능 향상 기능을 제공합니다. 이를 통해 웹 페이지의 로딩 속도와 성능을 개선할 수 있습니다.

Leave a comment