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: 도메인 이름 탐색
- DNS 서버에 접속한 후, www.google.com 의 IP가 무엇인지 요청
- DNS 서버는 요청에 대한 응답으로 216.58.197.196 리턴
해당 스텝 실패 시 : 사이트에 연결할 수 없음 (unknown domain name) , 서버 IP 주소를 찾을 수 없습니다
STEP 2: 웹서버(HTTP) 요청
-
웹서버의 라우팅(routing: 주소 탐색 규칙)에 따라 요청 처리
- 단순하게 정적 파일만 제공하는 경우 다음과 같이 조회(URL)
웹서버루트/intl/ko_kr/about/index.html
- 서버가 비즈니스 로직을 실행하도록 요청할 수도 있음
웹서버루트/search?q=codestates
웹서버루트/preferences
-
서버가 요청에 대한 응답을 자원(resource: HTML/JS 파일 등)의 형태로 전달
-
서버가 보내주는 자원을 브라우저에서 처리
해당 스텝 실패 시 : 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