본문 바로가기

IT/web41

[http] cache-control: max-age max-age에 대해 많은 곳에서 잘 설명해주고 있다. 하지만 실제 테스트해서 눈으로 확인이켜주는 곳은 많이 없다. 직접 http header를 다뤄보고 내것으로 만들려고 한다.상황 1응답에 cache-control:public,max-age=0 그리고 last-modified: Tue, 14 May 2024 02:37:45 GMT 둘 다 있을 경우 케쉬가 되어서 이유를 살펴보았다. Cache-Control: public, max-age=0 - public: 공용캐시 (프록시 서버)에 저장될 수 있다. - max-age=0 캐시된 응답이 생성된 직후에 만료됨을 의미. 캐시는 유효하지만, 사용하기전에 반드시 유효여부를 판단 후 사용해야 한다. Last-Modified - 마지막으로 수정된 날짜와 시간을 의.. 2024. 5. 14.
[http] no-store, no-cache Cache-Control: no-store이 지시어는 캐시가 전혀 이루어지지 않도록 합니다. 즉, 서버의 응답은 어떤 형태로든 저장되거나 캐시되어서는 안 됩니다. 이는 매우 민감한 데이터를 다룰 때 사용됩니다. router.get('/no-store', (req, res) => { // Cache-Control: no-store 지시어로 설정하여 캐시 저장을 전면 금지 res.setHeader('Cache-Control', 'no-store'); res.send('This response cannot be stored in any cache.');});  Cache-Control: no-cache이 지시어는 응답이 저장되는 것은 허용하지만, 재사용하기 전에 서버에 검증을 요청해야 합니다. 서버는 요.. 2024. 5. 13.
[http] If-Modified-Since, If-None-Match 개념캐시된 데이터를 사용해도 되는지 확인 하는 작업 어떻게?서버에 재검사 요청을 보내고, 서버는 캐시를 써도 되면 304 Not Modified로 응답, 캐시를 쓰면 안될 경우 200 OK 와 함께 새로운 값 반환 (서버에 요청을 보내야 하니 느리다.) If-Modified-Since, GET 요청에 이 해더를 추가하면 캐시된 시간 이후에 변경된 경우에만 사본을 보낸다. 응답에 Last-Modifed와 같이 쓰일 수 있다. 응답에서 최근 변경된 날짜를 내려주면 해당 값으로 만료여부를 판단 할 수 있다.시간단위로 검사하다보니 특정상황에서는 이 방법이 적절하지 않다. - 1초 미만으로 캐쉬할 경우 (요청 응답 딜레이로 적절히 캐쉬가 안됨) - 클라이언트나 서버가 시간 계산을 정확히 못할 경우 (GMT를 로컬.. 2024. 5. 13.
[http] turnnel https://en.wikipedia.org/wiki/HTTP_tunnel 페이지를 의역한 글입니다. 개념방화벽이 포함된 제한된 네트워크 사이에 두대의 컴퓨터가 네트워크 링크를 만드는데 사용터널은 프록시 처럼 중재자 역활이였다. 설명터널링은 제한된 네트워크에서 지원되지 않는 프로토콜을 이용하여 통신할 수 있도록 해주었다.터널링은 http connect method를 이용한다. 어떻게 동작하냐면, 클라이언트는 http proxy server에게 도착지점과 tcp 커넥션을 연결하라고 부탁한다. 그 서버는 클라이언트 자격으로 커넥션을 만든다. 커넥션이 맺어지면, 프록시 서버는 클라이언트로 부터 tcp stream을 교환한다. 첫 요청은 http였지만, 추후 서버는 tcp connection을 프록시 하게된다... 2024. 5. 10.
[http] MIME 개념통신 시 데이터 종류를 명시 특징모든 http 객체에 mime이 포함웹브라우저는 응답을 받으면 해당 응답에서 mime을 통해 데이터 종류 확인특별한 포맷일 경우 외부 플러그인을 실행 포맷response header에 content-type과 content-lengh를 확인 html 문서일 경우Content-Type: text/html; charset=UTF-8Content-Length: 8235 js file일 경우Content-Type: application/javascriptContent-Length: 8235 2024. 5. 10.
[FE] async / await 아래 Youtube 영상의 내용을 거의 그대로 가져온 페이지입니다.문제가 될 경우 삭제하겠습니다.async항상 promise 를 반환promise가 아닌 값을 반환하더라도 promise로 감싸여서 반환 awaitasync 함수안에서 promise가 처리될 때까지 기다린 후 값을 받아온다.promise가 저리 되는 동안 엔진이 다른일(다른 스크립트 실행, 이벤트 처리 등)을 할 수 있기 때문에 cpu 리소스가 낭비되지 않는다. 개발 팁 중간 과정에서는 async/await가 없어도 괜찮다.간단하게 then으로 처리할 수 있는 경우에도 없앨 수 있다. async/await는 기존 비동기처리가 주는 불편함을 해소하기 위해 등장한 만큼, 어디선가 최소 한번은 async/await를 쓰는게 좋다.그렇지만 중간 과.. 2024. 4. 29.