TIL 20210317

uoM·2021년 3월 17일
4

오늘

  • fetch
  • http

지금

http란

http(Hyper Text Transfer Protocol) 하이퍼 텍스트 문서(html)를 전송하기 위한 통신 규약(protocol)이다.
기본적으로 웹 클라이언트와 서버간의 통신을 위해 만들어 졌다.

지금은 html뿐만 아니라 img, mp4등 다양한 미디어 파일의 전송도 가능하다.

특징

  • Request - Response
    클라이언트가 HTTP 요청을 서버에 보내면, 서버는 요청을 처리한 후 결과에 따른 HTTP 응답을 클라이언트에게 보낸다. 즉 요청한 내용에만 필요한 데이터를 보낸다. 요청이 없는경우에는 통신이 없다. 서버와 불필요한 접촉을 유지하지 않게 된다.
    클라이언트과 서버 사이의 소통은 평문(ASCII) 메시지로 이루어진다.

  • Stateless
    각 통신은 상태가 없다. 한마디로 이전 통신에 대한 결과를 절대 알수 없다. 때문에 I/O 디자인이 편하다.
    매 요청 마다 다른 요청에 대한 결과를 고려할 필요가 없으며, 하나의 기능을 하도록 디자인 할 수 있다.

    하지만, 상태가 없는 특징으로 인해서 같은 데이터를 매번 요청해야 하는 경우도 생긴다.
    이런 경우에는 session과 cookie를 통해서 데이터를 저장 할 수 있다.

    용도

  • 캐싱
    요청한 파일을 캐싱하여 전달 받을 수 있다. 필요에 따라 캐싱을 무시할 수도 있다.

  • 인증
    headers에 토큰을 심어 내가 유효한 사용자인지 인증 할 수 있다.

  • 프록시를 통한 터널링
    프록시를 통해 http요청을 좀 다른 요청으로 보낼 수 있다.

  • 세션
    서버의 상태를 구독할 수 있도록 한다. 쇼핑몰에서 검색한 물건을 담아두는 역할을 하는게 가능한 것은 세션 덕분이다.

  • cross origin
    (CORS) Cross Origin Resource Sharing이 발생하는 이유, 다른 포트나 ip의 서버에서 데이터의 흐름을 막게된다. 해당 요청을 받을 수 있도록 Access-Control-Allow-Origin을 설정해주는 방식으로 해결 할 수 있다.
    cros error

    구조

    크게method, headers, body로 이루어져 있다.
    method는 우리가 요청하는 방식으로 GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE (en-US), PATCH가 있다. CRUD를 구현하기 위해서는 GET, PUT, POST, DELETE만 잘 사용해도 가능 하다.
    header는 사용자 인증이나, 데이터의 타입등 현재 요청하는 내용의 명세로 볼 수 있다.
    body에는 내가 보내는 데이터, 받는 데이터 등이 담겨 있다.

내일

  • http
  • 알고리즘

1개의 댓글

comment-user-thumbnail
2021년 3월 17일

잘 보고 갑니다~ :)

답글 달기