#TIL HTTP

송정석·2022년 2월 28일
0
post-thumbnail

HTTP란 무엇인가?🌈

HTTP는 Hyper Text Transfer Protocol의 두문자어로, 인터넷에서 데이터를 주고받을 수 있는 프로토콜 이다. 프로토콜은 규칙이라고 생각하면 된다

HTTP 통신과정

  1. 클라이언트(사용자)가 서버에 HTTP Request (요청)을 한다.
  2. 서버가 사용자의 요청을 받고 HTTP Response (응답)을 한다.

HTTP Request/Response🤔

1. HTTP Request

Request-Line
*(( general-header | request-header | entity-header ) CRLF)
CRLF
[ message-body ]

첫줄은 Request-Line이 오고 이어서 여러 종류의 헤더가 나온 다음에 줄바꿈을 두번하고(한줄 건너띄고) 메시지 바디가 오게된다.

Request-Line : 헤더에는 요청하는 클라이언트 PC, 브라우저정보, 사용자언어환경, 쿠키 등의 다양한 클라이언트 환경에 대한 정보를 가지고 있다
CRLF : 줄바꿈
message-body : 각종 데이터가 Method 방식에 따라 서버로 전달할 때 보안이 강화된 방식으로 message-body 에 넣어 전달한다.

2. HTTP Response

Status-Line
*(( general-header | response-header | entity-header ) CRLF)
CRLF
[ message-body ]

응답은 HTTP Request 를 통해 요청된 정보에 대해 웹서버가 클라이언트에 보내는 응답형식 및 결과를 나타낸다.
Status-Line : 응답 상태정보 표시 라인, HTTP버전정보 와 세자리 숫자값과 상태코드 값을 통해 응답결과 및 상태정보를 나타낸다.

📂 HTTP Request Methods

GET : GET 메서드는 특정 리소스의 표시를 요청합니다. GET을 사용하는 요청은 오직 데이터를 받기만 한다.
HEAD : HEAD 메서드는 GET 메서드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함하지 않는다.
POST : POST 메서드는 특정 리소스에 엔티티를 제출할 때 쓰입니다. 이는 종종 서버의 상태의 변화나 부작용을 일으킨다.
PUT : PUT 메서드는 목적 리소스 모든 현재 표시를 요청 payload로 바꾼다.
DELETE :DELETE 메서드는 특정 리소스를 삭제한다.
CONNECT : CONNECT 메서드는 목적 리소스로 식별되는 서버로의 터널을 맺는다.
OPTIONS : OPTIONS 메서드는 목적 리소스의 통신을 설정하는 데 쓰인다.
TRACE (en-US) : TRACE 메서드는 목적 리소스의 경로를 따라 메시지 loop-back 테스트를 한다.
PATCH : PATCH 메서드는 리소스의 부분만을 수정하는 데 쓰인다.

HTTP Status Code🧱

상태 코드는 3자리 숫자로 만들어져 있으며, 첫번째 자리는 1에서 5까지 제공된다. 첫번째 자리가 4와 5인 경우는 정상적인 상황이 아니기 때문에 사이트 관리자가 즉시 알아야 하는 정보다.

  1. 1xx: Informational 정보
    서버가 요청을 클라이언트에서 성공적으로 수신했으며 서버 끝에서 처리 중이라는 정보를 나타낸다.
    서버의 임시 응답이며 일반적으로 상태 줄과 선택적 헤더 만 포함하며 빈 줄로 끝난다.
    현재는 거의 사용하지 않는다.

  2. 2xx: Success 성공
    서버가 요청을 받고 성공적으로 처리되었음을 나타낸다.

  3. 3xx: Redirection 리디렉션
    브라우저는 자동으로 다른 URL로 리디렉션되므로 브라우저 창에는이 코드가 표시되지 않지만,
    이미지 파일처럼 캐싱된 파일을 새로고침 후 확인하면 3xx 코드를 확인할 수 있다.

  4. 4xx: Client Error 클라이언트 오류
    서버가 해결할 수 없는 클라이언트 측 에러 코드다.
    주로 클라이언트(사용자)가 서버에 잘못된 요청을 했을 경우 발생한다.

  5. 5xx: Server Error 서버 오류
    서버가 클라이언트의 요청을 처리하지 못했을 때 발생한다.
    서버는 보안 상 통신하지 않는 것이 가장 좋으므로 대부분의 에러 코드를 500 Error로 처리한다.

참조
https://www.zerocho.com/category/HTTP/post/5b344f3af94472001b17f2da
https://blog.outsider.ne.kr/888
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods

profile
Foot print

0개의 댓글