TIL HTTP

flobeeee·2021년 2월 3일
0

Today I Learned

목록 보기
5/35

HTTP 란?

HTTP(Hyper Text Transfer Protocol)는 서버와 클라이언트간의 데이터를 주고받기 위한 통신규약.
웹에서 HTML, JSON 등의 정보를 주고받는 프로토콜
클라이언트와 서버는 HTTP라는 프로토콜을 이용해 서로 대화를 나눈다.
HTTP를 이용해 주고받는 메세지는 "HTTP 메세지" 라고 부릅니다.
참고 : HTTP 메세지 mdn

프로토콜 이란?

통신규약, 즉 약속 (일종의 대화나누기 위한 방식이라고 생각하자)

API 란?

컴퓨터에 요청할 때, 정확한 주문방법을 따라 요청해야한다. ex) 메뉴판
서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스를 제공해줘야 한다.
(= API : Application Programming Interface)
보통 인터넷에 있는 데이터를 요청할 땐, HTTP 프로토콜을 사용하며, 주소(URL, URI)를 통해 접근할 수 있다.

사용자 관리 API

URL 디자인은 비교적 단순하나 "메소드"라는 개념이 등장

  • 요청 / 적절한 메소드 / 설명

조회(read)  / GET / 특정리소스의 표시를 요청(데이터를 받기만 함)
추가(create) / POST / 특정리소스에 개체를 제출할 때 씀(종종 서버상태변화와 부작용 일으킴)
갱신(update) / PUT / 요청 페이로드를 사용해 새로운 리소스 생성 or 대상리소스 데이터 대체
.      PATCH / 리소스의 부분적 수정할 때 쓰임
삭제(delete) /DELETE / 지정된 리소스 삭제

참고 : HTTP 요청 메소드 mdn

HTTP 특징

  • connectionless(비연결성)
    The server processes the request and sends a response back after which client disconnect the connection. So client and server knows about each other during current request and response only.
    클라이언트와 서버는 오직 요청하고 응답하는 동안에만 서로에 대해 인식한다.

  • stateless(무상태성)
    As mentioned above, HTTP is connectionless and it is a direct result of HTTP being a stateless protocol. The server and client are aware of each other only during a current request. Afterwards, both of them forget about each other. Due to this nature of the protocol, neither the client nor the browser can retain information between different requests across the web pages.
    비연결성 특성이 무상태성 특징까지 연결된다. 요청과 응답 후 서로 잊기 때문에 웹페이지를 통한 다른요청들이 일어나도 정보가 유지되지 않는다.

참고 : HTTP 특징

HTTP 상태코드

특정 HTTP 요청이 성공적으로 완료됐는지 코드를 통해 알 수 있다.

  • 예시

404 Not Found (제일 자주본 숫자..)
서버는 요청받은 리소스를 찾을 수 없습니다. 브라우저에서는 알려지지 않은 URL을 의미합니다. 이것은 API에서 종점은 적절하지만 리소스 자체는 존재하지 않음을 의미할 수도 있습니다. 서버들은 인증받지 않은 클라이언트로부터 리소스를 숨기기 위하여 이 응답을 403 대신에 전송할 수도 있습니다. 이 응답 코드는 웹에서 반복적으로 발생하기 때문에 가장 유명할지도 모릅니다.

200 OK (예전에 파이썬 공부할 때 관련 숫자를 통해 잘 됐다는 걸 확인한 기억이 난다)
요청이 성공적으로 되었습니다. 성공의 의미는 HTTP 메소드에 따라 달라집니다:
GET: 리소스를 불러와서 메시지 바디에 전송되었습니다.
HEAD: 개체 해더가 메시지 바디에 있습니다.
PUT 또는 POST: 수행 결과에 대한 리소스가 메시지 바디에 전송되었습니다.
TRACE: 메시지 바디는 서버에서 수신한 요청 메시지를 포함하고 있습니다.

[HTTP 상태 코드 mdn] 에서 표를 확인할 수 있다.

MIME 타입

MIME 타입이란 클라이언트에게 전송된 문서의 다양성을 알려주기 위한 메커니즘입니다: 웹에서 파일의 확장자는 별 의미가 없습니다. 그러므로, 각 문서와 함께 올바른 MIME 타입을 전송하도록, 서버가 정확히 설정하는 것이 중요합니다. 브라우저들은 리소스를 내려받았을 때 해야 할 기본 동작이 무엇인지를 결정하기 위해 대게 MIME 타입을 사용합니다.- mdn

우리 스프린트에서는 아래처럼 씀.

headers: {
        'Content-Type': 'application/json'
      }

MIME 타입 mdn Content-Type 에 대한 설명

Ajax

Ajax란 Asynchronous JavaScript and XML(비동기식 자바스크립트와 XML)의 약자이다. 예전에는 화면전체를 가져오는 방식으로 업데이트 했는데, Ajax 기술을 이용해 부분적으로 업데이트가 가능해졌다.

  • 서버와 자유롭게 통신가능 + 웹페이지 깜빡임없이 원활하게 작동

지메일이 핫메일을 이긴 이유

profile
기록하는 백엔드 개발자

0개의 댓글