일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- TIL #Today I Learned #
- TIL #Today I Learned # 기록 # 회고 #Udemy
- javascript #statement #expression #difference
- 불리언 #Boolean #number #string #symbol #null #undefined
- javascript '===' #javascript #TIL #Today I Learned #기록 #회고
- 고스트 블로그 #
- hackerrank #python #algorithm #해커랭크 #파이썬 #알고리즘
- Hackerrank #해커랭크 #python #파이썬 #알고리즘 #Algorithm
- #TIL #Today I Learned #기록 #회고 #ternary statement #swich statement #스위치 반복문 #
- 강의 #느낀점 #snowfox #스노우폭스 #김승호회장
- 자바스크립트 #javascript #datatype #데이터타입 #자료형
- javascript #event #onclick #js
- 블로그만들기 #웹사이트만들기 #
- 기록 #회고
- 블로그 셀프제작
- single source of truth란 #single source of truth #자료의중복 #자료의비정합성 #비정합성 #리팩토링
- 웹페이지제작 #
- Today
- Total
well-balanced
HTTP란? 본문
*이 글은 유튜버 생활코딩님의 HTTP 강의를 참고하였습니다.
HTTP를 간단하게 얘기해보자면
클라이언트 : 서버님 파일(HTML,Img 등)주세요 (요청, request)
서버 : 여기있습니다 (응답, response)
컨텐츠를 주고받기 위해서는 서버가 클라이언트가 서로가 알아들을 수 있는 공통의 메시지가 필요하다. 그 메시지를 HTTP라고 하며, 크게 request와 response로 구분된다. 개발자도구의 네트워크탭에 가보면 웹서버와 웹브라우저가 어떠한 통신을 하고 있는지 모니터링 할 수 있으며, 헤더로써 HTTP 메세지를 볼 수 있다.
Request
GET 요청방식
Host 요청하려는 서버 호스트 이름과 포트번호
User-agent 웹브라우저의 다른 표현, 클라이언트 프로그램 정보(웹브라우저, 운영체제)를 담고 있다. 나중에 통계를 낼 때, 어떤 운영체제, 웹브라우저가 많이 접속했는 지 알 수 있다. 로봇이 접근할 수 있는데 웹서버는 이 정보를 바탕으로 그 요청을 차단할 수 있다.
Accept_encoding 웹브라우저 웹서버가 서로 통신할 때 응답하는 데이터의 양이 많으면 그걸 압축해서 전송하면 웹브라우저가 그 압축을 풀어서 처리할 수 있음 (네트워크의 자원을 아낄 수 있음) '이 웹브라우저는 어떤어떤 압축방식을 지원합니다' 라고 적어놓은 것
If-modified-since 우리가 마지막으로 언제 이 파일을 다운받은 건지 알려줌. 그리고 웹서버는 응답할 때 자기가 가지고 있는 파일이랑 뭐가 더 최신인지를 비교해서 자기가 가지고 있는 파일이 최신이면 전송해주고, 최신이 아니라면 전송하지 않음.
Response
status code 이곳에 정리가 잘 되어 있다.
content-type 웹서버가 응답할 때 파일의 형식을 알려줌
content-length 응답하는 컨텐츠의 크기에 대해 알려줌
content-encoding 응답하는 컨텐츠의 압축방식
last-modified '이 정보는 언제 마지막으로 언제 수정되었습니다.' 를 알려줌
기본적으로 알아놓으면 좋을만한 것들을 정리했다.
그때그때 찾아서 보면 좋을만한 Header에 대해 자세한 정보를 담고 있는 블로그의 링크를 남긴다.
'etc' 카테고리의 다른 글
개발 트렌드를 읽는 방법들 (0) | 2020.03.01 |
---|---|
express의 render 메소드 (0) | 2019.12.06 |
Naming case (네이밍 케이스) (0) | 2019.11.14 |
'Object Model' 정리 (0) | 2019.11.13 |
동기(Synchronous)와 비동기(Asynchronous)의 차이 (0) | 2019.11.12 |