본문 바로가기

네트워크

(24)
HTTP-캐시 캐시 기본 동작 캐시가 없을 때 • 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. • 인터넷 네트워크는 매우 느리고 비싸다. • 브라우저 로딩 속도가 느리다. • 느린 사용자 경험 캐시 적용 • 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. • 비싼 네트워크 사용량을 줄일 수 있다. • 브라우저 로딩 속도가 매우 빠르다. • 빠른 사용자 경험 캐시 시간 초과 • 캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. • 이때 다시 네트워크 다운로드가 발생한다
HTTP-쿠키 쿠키 • Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답) • Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달 Stateless • HTTP는 무상태(Stateless) 프로토콜이다. • 클라이언트와 서버가 요청과 응답을 주고 받으면 연결이 끊어진다. • 클라이언트가 다시 요청하면 서버는 이전 요청을 기억하지 못한다. • 클라이언트와 서버는 서로 상태를 유지하지 않는다. 모든 요청에 정보를 넘기는 문제 • 모든 요청에 사용자 정보가 포함되도록 개발 해야함 • 브라우저를 완전히 종료하고 다시 열면? 쿠키 • 예) set-cookie: sessionId=abcde1234; expires=Sat, 26-Dec-2020 00:00:00 GMT; path=/; d..
HTTP-전송 방식, 일반 정보 전송 방식 설명 • 단순 전송 • 압축 전송 • 분할 전송 • 범위 전송 일반 정보 • From: 유저 에이전트의 이메일 정보 • Referer: 이전 웹 페이지 주소 • User-Agent: 유저 에이전트 애플리케이션 정보 • Server: 요청을 처리하는 오리진 서버의 소프트웨어 정보 • Date: 메시지가 생성된 날짜 From 유저 에이전트의 이메일 정보 • 일반적으로 잘 사용되지 않음 • 검색 엔진 같은 곳에서, 주로 사용 • 요청에서 사용 Referer 이전 웹 페이지 주소 • 현재 요청된 페이지의 이전 웹 페이지 주소 • A -> B로 이동하는 경우 B를 요청할 때 Referer: A 를 포함해서 요청 • Referer를 사용해서 유입 경로 분석 가능 • 요청에서 사용 User-Agent 유저..
HTTP-헤더 HTTP 헤더 용도 • HTTP 전송에 필요한 모든 부가정보 • 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐 시 관리 정보... • 헤더 분류 • General 헤더: 메시지 전체에 적용되는 정보, 예) Connection: close • Request 헤더: 요청 정보, 예) User-Agent: Mozilla/5.0 (Macintosh; ..) • Response 헤더: 응답 정보, 예) Server: Apache • Entity 헤더: 엔티티 바디 정보, 예) Content-Type: text/html, Content-Length: 3423 • 메시지 본문(message body)은 엔티티 본문(entity body)을 전달하는데 사용 • 엔티티 ..
HTTP-상태코드 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 • 1xx (Informational): 요청이 수신되어 처리중 • 2xx (Successful): 요청 정상 처리 • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드가 나타나면? • 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? • 클라이언트는 상위 상태코드로 해석해서 처리 • 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 됨 • 예) • 299 ??? -> 2xx (S..
HTTP-메서드의 속성 • 안전(Safe Methods) • 멱등(Idempotent Methods) • 캐시가능(Cacheable Methods) 안전 Safe • 호출해도 리소스를 변경하지 않는다. • Q: 그래도 계속 호출해서, 로그 같은게 쌓여서 장애가 발생하면요? • A: 안전은 해당 리소스만 고려한다. 그런 부분까지 고려하지 않는다 멱등 Idempotent • f(f(x)) = f(x) • 한 번 호출하든 두 번 호출하든 100번 호출하든 결과가 똑같다. • 멱등 메서드 • GET: 한 번 조회하든, 두 번 조회하든 같은 결과가 조회된다. • PUT: 결과를 대체한다. 따라서 같은 요청을 여러번 해도 최종 결과는 같다. • DELETE: 결과를 삭제한다. 같은 요청을 여러번 해도 삭제된 결과는 똑같다. • POST:..
HTTP-매서드 PUT ,PATCH ,DELETE PUT • 리소스를 대체 • 리소스가 있으면 대체 • 리소스가 없으면 생성 • 쉽게 이야기해서 덮어버림 • 중요! 클라이언트가 리소스를 식별 • 클라이언트가 리소스 위치를 알고 URI 지정 PATCH • 리소스 부분 변경
HTTP-메서드 - GET, POST HTTP 메서드 종류 주요 메서드 • GET: 리소스 조회 • POST: 요청 데이터 처리, 주로 등록에 사용 • PUT: 리소스를 대체, 해당 리소스가 없으면 생성 • PATCH: 리소스 부분 변경 • DELETE: 리소스 삭제 HTTP 메서드 종류 기타 메서드 • HEAD: GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환 • OPTIONS: 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용) • CONNECT: 대상 자원으로 식별되는 서버에 대한 터널을 설정 • TRACE: 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행 POST 요청 데이터를 어떻게 처리한다는 뜻일까? • 스펙: POST 메서드는 대상 리소스가 리소스의 고유 한 의미 체계에 ..