HTTP
생활코딩의 Node.js 섹션을 보니
- 쿠키와 인증
- 세션과 인증
- passport.js
- 다중 사용자
- 구글/페이스북 로그인
이 남았다. 카테고리를 계속 늘리는 것도 좀 그렇고 남은 것끼리 카테고리도 비슷해보여 저 섹션들의 내용을 하나의 게시판에 담기로 했다.
이번 글은 쿠키와 인증을 듣기 위해 선행되어야 하는 개념인 HTTP에 대한 글이다.
HyperText
Transfer
Protocol
Web browser, Web Server의 통신 규약
클라이언트는 서버에게 HTML을 요구함 - Request
서버는 응답으로 HTML을 전달 - Response
HTTP는 Request와 Response를 나타냄
서버와 클라이언트가 컨텐츠를 주고받기 위한 공통의 약속
개발자 도구의 네트워크 탭 - 웹 브라우저와 웹 서버가 어떤 통신을 하는지 모니터링할 수 있는 툴
웹페이지를 reload를 하면,
웹 서버와 웹 브라우저가 주고 받은 데이터를 볼 수 있다.
Request Headers - 웹 브라우저가 웹 서버에게 요청한 데이터
위 사진은 http request header의 형식이고 이를 이용하여 request header을 자세히 알아보자.
- GET / HTTP/1.1 : 요청 행, GET 방식, HTTP의 버전은 1.1
- body와 header은 line을 둬서 구분한다.
- Host~If-Non-Match : request header
- Host: 필수적, 우리 웹 사이트의 주소
- 3000: 포트 번호
- User-Agent: 내 경우 parsed에 있음, 웹 브라우저가 어떤 웹 브라우저인지 보여줌
- Accept-Encoding: 어떤 압축 방식을 지원하는지 적어둠
- If-Modified-Since: 자기가 가지고 있는 파일이 최신이면 전송, 그렇지 않으면 X > 소요 시간 줄임
Response Headers - 응답 헤더
- status code: 응답 결과에 대한 내용
- phrase: 응답 결과를 사람이 알 수 있도록 해석한 것.
HTTP/1.1 200 OK
- HTTP/1.1: version
- 200: status, 200은 성공을 뜻함
- OK: phrase
https://www.restapitutorial.com/httpstatuscodes.html >> 자세한 HTTP status code를 알고 싶으면 들어가자.
그 다음으로 Header에 대해 알아보자.
- Content-Type: 이름 그대로 content가 어떤 타입인지 보여줌
- Content-Length: content의 크기, 단위는 byte
- Content-Encoding: content를 어떤 방식으로 압축을 풀어야 하는지
- Last-Modified: 마지막으로 수정된 날짜
적어보니 다 이름으로 알 수 있는 내용이네 ^ㅅ^,,
(+)
HTTPS: S는 secure을 뜻함, SSL을 이용, 암호화하여 내용을 전송
Cache: 다운로드 받은 저장된 파일을 읽어서 성능을 향상시키는 기법, 내용이 갱신되었을 웹 브라우저가 알아채지 못하는 문제 발생 > cache-control, pragma를 통해 cache를 제어
Cookie: 사용자 정보, 상태를 서버에 전송, 기억
proxy: 중개 서버, 서버 분산