HTTP

Minjeong Bak·2021년 10월 15일
0

Computer Science

목록 보기
2/5
post-thumbnail
post-custom-banner

HTTP

정의

HyperText Transfer Protocol

  • HyperText
    HTML(Hyper Text Markup Language)
    Hyper Text = 문서와 문서가 링크로 연결되어 있음을 뜻함

  • Transfer
    전송하다 = 물건이나 편지 따위를 보내다
    HTML로 만든 웹페이지 문서(파일)을 보낸다

  • Protocol
    컴퓨터끼리 HTML 파일을 어떻게 주고 받을 지에 대한 소통 방식 또는 약속

특징

  1. Request/Response(요청/응답)

  2. Stateless

    • HTTP 개별 통신은 모두 독립이어서 과거의 HTTP 통신 결과(상태)를 보존하지 않는다.
    • State(상태) + less(없음)
    • 매 통신마다 사전에 필요한 모든 정보를 담아서 요청을 보내야 한다.

구조

요청과 응답 모두 메세지 형식

  • 요청 메세지 구조
    • Start Line: 요청의 첫번째 줄

      HTTP method
      : 요청이 의도한 액션을 정의
      
      Request target
      : 요청이 전송되는 목표 url
      
      HTTP version
      : HTTP 버전
      
      GET/login HTTP/1.1
    • Headers: 요청의 메타데이터를 담고 있는 부분

      {key : value}의 형태
      
      Header: {
        Host : www.wecode.co.kr
        User-Agent : chrome
        Content-Type : application/json
        Content-Length : 50
      }
    • Body: 요청의 실제 내용

      Body: {
        "username" : "wecode",
        "password" : "wecode123"
      }
      
      요청 메소드에 따라 존재하지 않을 수 있음
  • 응답 메세지 구조
    • Status Line

      응답의 첫번째 줄 - 상태를 나타냄
      
      HTTP version
      : HTTP 버전
      
      Status Code
      : 응답 상태 코드
      
      Status Text
      : 응답의 상태를 간략히 설명하는 텍스트
      
      HTTP/1.1 404 Not Found
      HTTP/1.1 200 SUCCESS
    • Headers

      응답의 메타데이터를 담고 있는 부분
      
      {key : value}의 형태
      
      Headers: {
        Host : www.wecode.co.kr
        User-Agent : chrome
        Content-Type : application/json
        Content-Length : 50
      }
    • Body

      응답해줄 데이터
      
      Body: {
        "message" : "success",
        "token" : "dksiehfksjfksl"
      }
      
      요청 메소드에 따라 존재하지 않을 수 있음

Request Methods

  • GET
    데이터를 받아오거나 웹페이지에 접속해서 필요한 데이터를 불러올 때 사용

  • POST
    데이터를 생성/수정할 때 사용, Body에 내용이 담김

  • DELETE
    서버에 저장된 특정 데이터를 삭제할 때 사용

HTTP Code

200 : OK

  • 요청이 성공적으로 됨.
    GET: 리소스를 불러와서 메시지 바디에 전송됨
    HEAD: 개체 해더가 메시지 바디에 있음
    PUT 또는 POST: 수행 결과에 대한 리소스가 메시지 바디에 전송됨
    TRACE: 메시지 바디는 서버에서 수신 요청한 메시지를 포함하고 있음

201 : Created

  • 새로운 리소스가 생성되었다는 뜻, 일반적으로 POST 또는 일부 PUT 요청 이후에 따라옴.

400 : Bad Request

  • 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음

401 : Unauthorized

  • 인증되지 않은 사용자가 인증이 필요한 리소스를 요청하는 경우, 인증이 필요하다고 알려주는 코드, 보통 로그인이 필요한 API를 비로그인 사용자가 호출했을 때 많이 사용

403 : Forbidden

  • 접근이 금지된 리소스를 요청했음을 의미, 인증을 요청하는 것이 아닌 무조건 금지된 리소스라는 뜻

404 : Not Found

  • 요청받은 리소스가 존재하지 않음

500 : Internar Server Error

  • 백엔드 어플리케이션 내 알 수 없는 에러가 발생했다는 의미
post-custom-banner

0개의 댓글