6월 24일 - HTTP

Yullgiii·2024년 6월 24일
0
post-thumbnail

HTTP 동작

HTTP는 클라이언트와 서버 간의 통신을 위해 사용되는 프로토콜이다. 클라이언트가 브라우저를 통해 URI를 통해 특정 요청(Request)을 보내면, 서버는 해당 요청을 받아 처리하여 클라이언트에게 응답(Response)을 하는 형태로 동작한다.

HTTP 동작 과정

  1. 클라이언트 요청: 사용자가 브라우저에서 URI를 입력하거나, 링크를 클릭하거나, 폼을 제출하는 등의 동작을 통해 HTTP 요청을 보낸다.
  2. 서버 처리: 서버는 클라이언트로부터 받은 요청을 처리한다. 요청된 자원이나 데이터를 검색하거나, 필요한 작업을 수행한다.
  3. 서버 응답: 서버는 처리 결과를 HTTP 응답으로 클라이언트에게 전송한다. 응답에는 상태 코드, 헤더, 본문 등이 포함된다.
  4. 클라이언트 처리: 클라이언트는 받은 응답을 처리하고, 사용자에게 결과를 표시한다.

HTTP 특징

  • TCP/IP 기반: HTTP는 TCP/IP를 이용한 응용 프로토콜이다.
  • 비연결성: HTTP는 연결 상태를 유지하지 않는 비연결성 프로토콜이다.
  • 요청/응답 방식: HTTP는 요청과 응답 방식으로 동작한다.
  • 메시지 해석: 서버와 클라이언트에 의해 HTTP 메시지가 해석된다.

HTTP Method

Method설명
GETURI가 가진 정보를 검색하기 위해 요청하는 메소드
HEADGET 메소드와 동일하지만, 응답에 BODY가 없고 응답 코드와 헤더만 응답하는데 사용되는 메소드
POST요청된 자원을 생성하기 위한 메소드
PUT요청된 자원을 수정할 때 사용하며, 자원 전체를 갱신하는 데 사용되는 메소드
PATCHPUT 메소드와 유사하지만, 자원의 일부를 수정하는 데 사용되는 메소드
DELETE요청된 자원을 삭제하기 위한 메소드
CONNECT동적으로 터널 모드를 교환하고 프록시 기능을 요청할 때 사용하는 메소드
TRACE원격 서버에 루프백 메시지를 호출하기 위해 테스트 용도로 사용하는 메소드
OPTIONS웹 서버에서 지원하는 메소드의 종류를 확인할 때 사용하는 메소드

HTTP Status Code

정보전송 임시응답 (1xx)

서버가 요청을 클라이언트에서 성공적으로 수신하였고 서버에서 처리 중인 정보를 보낸다.

Status Code설명
100Continue
101Switching Protocols

성공 (2xx)

서버가 요청을 성공적으로 받았음을 알려준다.

Status Code설명
200OK
201Created
202Accepted
203Non-Authoritative Information
204No Content

리다이렉션 (3xx)

캐싱된 파일을 새로 고침하여 확인하면 3xx대 코드를 받을 수 있다.

Status Code설명
301Moved Permanently
302Found
303See Other

클라이언트 요청 오류 (4xx)

클라이언트에서 서버에 잘못된 요청을 보내 서버가 요청을 해결할 수 없을 때 발생하는 코드이며, 클라이언트 측에서 발생하는 코드이다.

Status Code설명
400Bad Request
401Unauthorized
402Payment Required
403Forbidden
404Not Found
405Method Not Allowed
407Proxy Authentication Required
408Request Timeout
410Gone
412Precondition Failed
414URI Too Long

서버 오류 (5xx)

클라이언트의 요청을 받고 서버에서 처리하지 못할 때 발생하는 코드이며, 서버 측에서 발생하는 코드이다.

Status Code설명
500Internal Server Error
501Not Implemented
503Service Unavailable
504Gateway Timeout
505HTTP Version Not Supported

예제

사용자가 브라우저에 https://www.example.com을 입력하면:

1. 브라우저는 DNS 서버에 www.example.com의 IP 주소를 조회한다.
2. IP 주소를 얻으면 브라우저는 해당 IP 주소로 TCP 연결을 설정한다.
3. TCP 연결이 설정되면 브라우저는 HTTP GET 요청을 서버에 보낸다.
4. 서버는 요청을 처리하고, HTTP 200 OK 응답과 함께 HTML 데이터를 브라우저에 보낸다.
5. 브라우저는 받은 HTML 데이터를 해석하여 사용자에게 웹 페이지를 표시한다.

So...

HTTP는 클라이언트와 서버 간의 통신을 위한 핵심 프로토콜이다. 요청과 응답 방식으로 동작하며, 다양한 HTTP 메소드와 상태 코드를 통해 웹 통신을 관리한다. HTTP의 비연결성 특성으로 인해 연결을 유지하지 않지만, 이를 통해 더 효율적인 통신이 가능하다. 이러한 HTTP의 작동 방식을 이해하면, 웹 개발과 네트워크 프로그래밍에서 더 나은 성능과 효율성을 달성할 수 있다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글