[간단정리] HTTP / API / window.fetch()

HTTP

웹 서버통신을 위한 프로토콜 중에 하나

  • TCP / UDP / SMTP / HTTP
  • HTTP 1.0 → TCP 라는 프로토콜을 쓴다
  • HTTP 2.0 → UDP 라는 프로토콜을 쓴다

HTTP : 비연결성, 무상태성 → TCP, UDP는 갖고있지 않은 특성

  • TCP 는 SeverPC 가 꺼져있다면 데이터 요청 못하고 통신 종료가 된다.(상태 전달 못함)
  • HTTP 는 꺼져있든 켜져있든 상관없이 통신을 보낼 수 있다. 꺼져있다면 503 상태를 전달받는다.

알아두면 좋은 상태 코드번호

  • 200 - 206 : 요청성공
  • 400 - 415 : 클라이언트 에러
  • 500 - 505 : 서버에러

API

서버로 어떤 요청을 하는 명시적인 규칙
ex ) https://urclass.codestates.com/0771d606-c8f1-4fe5-b262-14a68079d851

숫자로 되어있는 부분은 Uuid 아이디

AJAX

: 홈페이지의 일부분만 변경하고 싶을 때 별도의 API 요청을 보내는 기술이다.

window.fetch()

클라이언트 fetch는 윈도우 객체 안에 정의가 되어있다.
브라우저에 올라가기 때문에 window.fetch()를 써야한다.


HTTP advanced + Network Tab

STEP 1: 도메인 이름 탐색

  1. DNS 서버에 접속한 후, www.google.com 의 IP가 무엇인지 요청
  2. DNS 서버는 요청에 대한 응답으로 216.58.197.196 리턴

해당 스텝 실패 시 : 사이트에 연결할 수 없음 (unknown domain name) , 서버 IP 주소를 찾을 수 없습니다

STEP 2: 웹서버(HTTP) 요청

  1. 웹서버의 라우팅(routing: 주소 탐색 규칙)에 따라 요청 처리

    • 단순하게 정적 파일만 제공하는 경우 다음과 같이 조회(URL)
    웹서버루트/intl/ko_kr/about/index.html
    • 서버가 비즈니스 로직을 실행하도록 요청할 수도 있음
    웹서버루트/search?q=codestates
    웹서버루트/preferences
  2. 서버가 요청에 대한 응답을 자원(resource: HTML/JS 파일 등)의 형태로 전달

  3. 서버가 보내주는 자원을 브라우저에서 처리

해당 스텝 실패 시 : 404 NOT FOUND (존재하지 않는 페이지)

HTTP

  • 서버와 클라이언트 주로 html 등의 문서를 주고 받는데 사용하는 프로토콜
  • 주로 TCP/UDP 80번 포트를 사용
    • See also : TCP, UDP, well-known port
  • HTTP/1.1 의 경우 요청과 응답은 Start/Status line, Header 그리고 Body로 이루어져 있다.

URI

  • HTTP 요청은 URI를 통해 할 수 있다
  • 주소창을 통해 하는 요청은 전부 GET Request

좋은 웹페이지 즐겨찾기