HTTP
HTTP 웹 기본 지식 - 캐시 기본 동작
HTTP 웹 기본 지식 - 캐시 기본 동작
2022.06.22캐시 기본 동작 이번시간부터는 캐시와 조건부 요청과 관련된 헤더들과 동작들에 대해서 알아보도록 하겠다. 먼저, 캐시가 어떠헥 동작하는지 캐시 기본 동작에 대해서 알아보자. 캐시가 없다고 가정하자. 웹브라우저에서 GET/ start.jpg를 요청하면, 서버에서 star.jpg가 있으면 응답을 내려준다. 응답 HTTP를 보면, 헤더가 있고, 밑에 실제 이미지와 관련된 바이트코드가 있다고 가정할 때, start.jpg 이미지가 HTTP 헤더 관련된 용량이 0.1M, 실제 이미지를 표현하는 HTTP 바디 부분이 1M 라고 가정하면, 헤더와 바디를 합쳐 1.1M의 네트웍을 차지하면서 웹브라우저로 내려가고, 그리고나서 웹브라우저에 이미지가 표시될 것이다. 캐시가 없으므로, 똑같은 요청을 한번 더하면, 서버에서는 또..
HTTP 웹 기본 지식 - 인증
HTTP 웹 기본 지식 - 인증
2022.06.21인증 Authorization : 클라이언트 인증 정보를 서버에 전달 WWW-Authenticate: 리소스 접근시 필요한 인증 방법 정의 Authorization은, 클라이언트 인증 정보를 서버에 전달한다. 그런데, 참고로 인증과 관련되서는, 인증하는 여러 매커니즘이 있는데, ---- ex) OAuth인증 그것들마다 value에 들어가는 것은 완전히 다르다. 그래서, 필요할 때 각각 공부해보면, "값을 어떤걸 넣어야 하는구나" 하고 알 수 있을 것이다. HTTP Authorization은 어떤 인증방법인지 상관없이 우선, 헤더를 제공하는 것이다. 여기에 인증과 관련된 값을 넣어주면 될 것이다. WWW-Authenticate는, 리소스 접근시 필요한 인증 방법 정의 이다. 만약에, 뭔가 접근을 했는데, ..
HTTP 웹 기본 지식 - 특별한 정보
HTTP 웹 기본 지식 - 특별한 정보
2022.06.20특별한 정보 이번시간에는 조금 특별한 정보를 제공하는 HTTP 헤더들에 대해서 알아보도록 하겠다. 하나씩 살펴보자. Host는, 요청한 호스트 정보(도메인) 이다. 정말 중요한 것이고, 요청에서 사용하며, 필수값이다. 요청에서 사용 필수 하나의 서버가 여러 도메인을 처리해야 할 때 하나의 IP 주소에 여러 도메인이 적용되어 있을 때 하나의 IP주소에 여러 도메인이 적용되어있을 때, Host가 구분을 해준다. 무슨 말인지 예제로 살펴보자. 하나의 서버에 IP 200.200.200.2가 있는데, 서버안에 여러개의 어플리케이션이 실제로 다른 도메인으로 구동이 되어있을 수도 있다. Host라는게 없으면 무슨 문제가 생기냐면, 내가 GET으로 /hello HTTP/1.1 요청을 보내면, 서버 입장에서는 이 요청이..
HTTP 웹 기본 지식 - 일반 정보
HTTP 웹 기본 지식 - 일반 정보
2022.06.20일반 정보 이번시간에는 쉽고 단순한 HTTP 헤더들에 대해서 알아보겠다. 정보성 헤더들이다. 하나씩 살펴보자. From는, 유저 에이전트의 이메일 정보다. 일반적으로 잘 사용하지는 않는데, 검색 엔진 같은 곳에서 내 사이트를 크롤링 해갈 때, 내가 검색엔진 담당자에게 어떠한 연락을 취해야 할 때, 연락할 수 있는 방법이 필요한데, 그러한 유저 에이전트(검색엔진 담당자)의 이메일 정보를 넣어놓을 때 사용한다. 일반적으로 잘 사용되지 않음 검색 엔진 같은 곳에서, 주로 사용 요청에서 사용 Refer는, 이전 웹페이지 주소이다. 현재 요청된 페이지의 이전 웹 페이지 주소 A → B로 이동하는 경우 B를 요청할 때 Referer: A를 포함해서 요청 Referer를 사용해서 유입 경로 분석 가능 요청에서 사용 ..
HTTP 웹 기본 지식 - 전송 방식
HTTP 웹 기본 지식 - 전송 방식
2022.06.19전송 방식 이번시간에는 전송방식에 대해 알아보자. 전송방식은 단순하게 4가지로 분류할 수 있다. 단순 전송 압축 전송 분할 전송 범위 전송 단순 전송은, 요청을 하면 응답을 주는데 , 이때, 응답 메시지의 메시지바디에 대한 Content-Length를 딱 지정하는 것이다. 단순 전송은 Content-Length를 알 수 있을 때 사용하는 것이다. 압축 전송은, 서버에서 gzip같은 것으로 메시지바디의 데이터를 압축해서 전송하는 것이다. 대신 이 경우에는 Content-Encoding이라는 것을 통해 뭐로압축했는지 정보를 넣어줘야한다. 분할 전송은, Transfer-Encoding이라는 것을 사용하는데, 여기다가 chunked 라는 것을 사용할 수 있다. chunk는 덩어리라는 뜻으로, 덩어리로 쪼개서 보..
HTTP 웹 기본 지식 - 콘텐츠 협상
HTTP 웹 기본 지식 - 콘텐츠 협상
2022.06.19콘텐츠 협상 이번시간에는 협상 헤더들에 대해서 알아보도록 하겠다. 협상 헤더를 영어로 콘텐츠 네고시에이션이라고 한다. 쉽게말해서 클라이언트와 서버가 있으면, 클라이언트가 선호하는 표현으로 서버에게 달라고 요청하는 것이다. 그러면 서버가 "클라이언트가 원한 우선순위가 이거니까 너가 원하는 우선순위에 맞춰서 내가 표현데이터를 만들어줄게" 라고 하는 것이다. Accept: 클라이언트가 선호하는 미디어 타입 전달 Accept-Charset: 클라이언트가 선호하는 문자 인코딩 Accept-Encoding: 클라이언트가 선호하는 압축 인코딩 Accept-Language: 클라이언트가 선호하는 자연 언어 협상 헤더는 요청시에만 사용!! Accept-Language 로 예제를 살펴보자. 예를 들어서, 내가 한국어 브라..