HTTP

DongHee Kim·2021년 8월 14일
2

Web

목록 보기
7/9
post-thumbnail

HTTP란?

HTTP는 HyperText Transfer Protocol의 약자이다.

단어 별로 뜯어보자면,

  • HyperText: 문서와 문서가 링크로 연결되어 있는 (클릭하면 다른 페이지로 연결) 텍스트를 뜻한다. HTML에서의 HT가 HyperText의 약자로, HTTP는 HTML로 만든 웹페이지를 어떻게 주고받을지에 대한 약속이다.

  • Transfer : 전송한다는 뜻. 우리가 만든 웹사이트는 꽁꽁 숨겨두는 게 아니라, 다른 컴퓨터에게 전송해야한다.

  • Protocol : 협약, 통신 규약이라는 의미. 멀리 떨어진 컴퓨터끼리 어떻게 파일을 전송할지에 대한 약속이다.

한 마디로 표현하자면, HTTP는 컴퓨터끼리 HTML파일을 주고받기 위한 소통방식/약속이다.

HTTP의 특징

Request(요청) / Response(응답) 구조

HTTP 통신의 소통 사이클에선 요청과 응답이 핵심이다.
아주 간단하게 예를 들자면, 아래의 구조인 것.

나 (요청) : 아이유 뮤직비디오 영상 주세요 
유투브 (응답) : 아이유 뮤직비디오 영상 드려요

요청/응답 구조는 모두 메세지, 그러니까 텍스트 구조로 이루어져있다.
각각의 메세지 구조를 간략하게 알아보자.

Request 메세지 구조

Start line

요청의 첫 번째 줄로, 아래의 세 부분으로 이루어져 있다.

  1. HTTP Method: 해당 요청이 의도한 액션 정의 (ex. GET, POST, DELETE)
  2. Request target: 해당 요청이 전송되는 목표 url
  3. HTTP Version: 사용중인 HTTP 버전 (주로 1.1 버전)

예시
GET /login HTTP/1.1 의 해석 :
GET 메소드로 login 이라는 요청 타겟에 HTTP 1.1 버전으로 요청을 보내겠다.

Headers

요청의 메타데이터 (데이터에 대한 데이터)를 담고 있는 부분으로,
{key : value}의 형태를 가진다.

예시
Headers : {
Content-Length : 30
}

Body

요청의 실제 내용 (요청 메소드에 따라 존재하지 않을 수도 있다)

예시
Body : {
"username" : "donghee"
"password" : "0000"
}

Response 메세지 구조

Status line

요청의 첫 번째 줄로, 상태를 나타낸다.

  1. HTTP Version: 사용중인 HTTP 버전
  2. Status Code : 응답 상태 코드
  3. Status Text : 응답의 상태를 간략히 설명하는 텍스트

예시
HTTP/1.1 404 Not Found

여기서 대표적인 Status Code의 종류를 알아보자.

  • Success
    200 : OK
    201 : Created

  • Error
    400 : Bad Request (ex.로그인 자체 실패)
    401 : Unauthorized (ex. 무료회원으로 로그인은 했으나 유료회원 전용 페이지에 접속하려 할 때)
    403 : Forbidden
    404 : Not Found (ex.요청한 페이지가 없을 때)

  • Server Error
    500 : Internal Server Error

Headers

Request 메세지의 Headers와 일반적으로 동일하다.

Body

Request 메세지의 Body와 일반적으로 동일하다.


사람과 사람의 커뮤니케이션 방법이 중요하게 여겨지듯이
소통 매개체가 텍스트로 한정되었을 뿐, 컴퓨터끼리의 소통 방식도 중요함을 잊지말자😎

profile
일상의 성실이 자존감을 만드는 성취주의자

0개의 댓글