본문 바로가기

CS/Http9

HTTP 헤더 2 캐시와 조건부 동작 만약 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 느린 사용자 경험 캐시 적용 캐시 덕분에 가능 시간동안 네트워크를 사용할 필요가 없다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험 헤더에 cache-control: 값을 주어, 캐시를 적용할 수 있다. 예시) cache-control : max-age=60 (60초간 캐시에 저장) 캐시에 유효시간동안 데이터를 저장한다면, 유효시간 내에 다시 같은 요청을 보낼 때, 먼저 캐시에 동일한 데이터가 있는지 확인한 후에 데이터가 있는 경우 캐시에서 데이터를 가져온다. 캐시 시.. 2023. 7. 20.
HTTP 헤더 HTTP 헤더 용도 HTTP 전송에 필요한 모든 부가정보를 나타낸다. 예시) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등 참고로 표준 헤더는 너무나도 많다 필요시 임의의 헤더를 추가 할 수 있다. 예시) helloword : hihi 과거의 HTTP 표준 헤더 분류 - RFC2616(과거) 헤더 분류 General 헤더 : 메시지 전체에 적용되는 정보 예시) Connection: close Request 헤더 : 요청 정보 예시) User-Agent: Mozilla/5.0 (Macintosh; ...) Response 헤더 : 응답 정보 예시) Server: Apache Entity 헤더: 엔티티 바디정보 예시) Content-Type: t.. 2023. 7. 19.
HTTP 상태코드 상태코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1XX (Informational) : 요청이 수신되어 처리 중 2XX (Successful) : 요청 정상 처리 3XX (Redirection) : 요청을 완료하려면 추가 행동이 필요 4XX (Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5XX (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드가 응답이 올경우 클라이언트가 인식할 수 없는 상태코드를 서버가 반환할 때, 클라이언트는 상위 상태코드로 해석해서 처리하면 됨 또한, 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 됨 예시) 299??? -> 2XX (Succe.. 2023. 7. 18.
HTTP 메서드의 속성 안전(Safe Methods) 호출해도 리소스를 변경하지 않는다. GET METHOD HEAD METHOD 멱등(Idempotent Methods) 한 번 호출하든 여러번 호출하든 결과가 똑같다. 멱등 메서드 GET : 몇번을 조회해도 같은 결과가 조회된다. PUT : 데이터 전체를 대체하기 때문에 항상 결과가 같다. DELETE : 삭제는 여러번 삭제해도 결과는 같다. 주의! POST 메서드는 멱등이 아니다. 예를들어 결제시스템에서 POST를 두번 호출 할 경우 결제가 중복해서 발생할 수 있다. 멱등이 필요한 이유 자동복구 메커니즘 서버가 TIMEOUT등으로 정상 응답을 못주었을 때, 클라이언트가 같은 요청을 다시 해도 되는가? 의 판단 근거이다. 멱등은 외부 요인으로 중간에 리소스가 변경되는 것 까지.. 2023. 7. 17.
HTTP 메서드 HTTP 메서드란, 클라이언트가 서버에게 요청할 때 기대하는 행동을 말한다. HTTP 메서드 종류 주요메서드 GET : 리소스 조회 POST : 요청 데이터 처리, 주로 등록에 사용 PUT : 리소스를 대체, 해당 리소스가 없으면 생성 PATCH : 리소스 부분 변경 DELETE : 리소스 삭제 기타 메서드 HEAD : GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환 OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용) CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정 TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행 GET 리소스 조회 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트.. 2023. 7. 16.
HTTP 특징 클라이언트 서버 구조 기본적으로 클라이언트는 서버로 Request를 보내면, 서버는 클라이언트의 응답을 받고 Response를 보내는 구조이다. Request Response 구조 클라이언트는 서버에 요청을 보내고, 응답을 대기 서버가 요청에 대한 결과를 만들어서 응답 클라이언트와 서버가 분리되면, 각각이 독립적인 진화가 가능하다. 서버에선 핵심 비즈니스로직과 데이터 처리 담당 클라이언트측에서는 사용성과 UI등을 담당 이렇게 될 경우, 서버에서는 데이터를 처리하고 핵심 비즈니스 로직 개발에만 집중하여 진화할 수 있고, 클라이언트 측은 사용자의 사용성과 UI에만 집중하여 개발할 수 있는 장점이 있다. 무상태 프로토콜 (Stateless) 서버가 클라이언트 상태를 보존하지 않는다. 장점 : 서버 확장성이 높.. 2023. 7. 15.