본문 바로가기

Programming/HTTP

(6)
[김영한/HTTP 웹 기본 지식] HTTP 헤더 (캐시 & 조건부 요청) 캐시 기본 동작 캐시 없을 때 같은 데이터 요청해도 계속 네트워크를 통해 똑같은 데이터를 다운로드 받아야 함 인터넷 네트워크는 매우 느리고 비쌈 → 느린 브라우저 로딩 속도 (느린 사용자 경험) 캐시 적용 응답 헤더의 cache-control 필드에 유효시간 담음 → 해당 시간동안 요청한 데이터(다운로드한 데이터)가 브라우저 캐시에 저장됨 같은 요청 반복 시 캐시 저장소에서 꺼내오면 됨 = 캐시 가능 시간동안 네트워크를 사용하지 않아도 됨 네트워크 사용량 감소로 인한 비용 감축 & 브라우저 로딩 속도 증가 (빠른 사용자 경험) 캐시 유효시간 초과 시 => 서버 통해 데이터 재조회 & 캐시 갱신 (네트워크 다운로드 발생) 검증 헤더 & 조건부 요청 캐시 만료 후에도 서버 데이터 변경 없을 때 새로운 요청 ..
[김영한/HTTP 웹 기본 지식] HTTP 헤더 (일반 헤더) HTTP 헤더 개요 헤더 필드 형식 field-name: OWS field-value OWS ※ OWS => 띄어쓰기 허용 field-name => 대소문자 구분 없음 용도 HTTP 전송에 필요한 모든 부가정보 ex) 메시지 바디의 내용/크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보, .. 표준 헤더 매우 많음 필요시 임의 헤더 추가 가능 ex) helloworld: hihi 과거 (RFC2616) 헤더 분류 General 헤더 : 메시지 전체에 적용되는 정보 ex) Connection: close Request 헤더 : 요청 정보 ex) User-Agent: Mozilla/5.0 (Macintosh; ..) Response 헤더 : 응답 정보 ex) Server: Apache En..
[김영한/HTTP 웹 기본 지식] HTTP 상태 코드 HTTP 상태코드 1xx (Informational) : 요청이 수신되어 처리중 2xx (Successful) : 요청 정상 처리 3xx (Redirection) : 요청을 완료하려면 추가 행동 필요 4xx (Client Error) : 클라이언트 오류 =>잘못된 문법 등으로 서버가 요청 수행 불가 5xx (Server Error) : 서버 오류 => 서버가 정상 요청을 처리 못함 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? 클라이언트는 상위 상태코드로 해석해서 처리 => 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 됨 ex) 299 ??? -> 2xx (Successful) 451 ??? -> 4xx (Client Error) 599 ??? -> 5xx (Server ..
[김영한/HTTP 웹 기본 지식] HTTP 메서드 HTTP API API URI 설계 시 리소스 식별이 중요 + 계층구조 활용 리소스 - 해당 리소스를 대상으로 하는 행위를 분리 ex) 리소스 : 회원 / 행위 : 조회, 등록, 삭제, 변경 ex) API URI 회원 목록 조회 /members 회원 조회 /members/{id} 회원 등록 /members/{id} 회원 수정 /members/{id} 회원 삭제 /members/{id} ※ 계층 구조 상 상위 => 컬렉션 => 복수 단어 HTTP 메서드 GET : 리소스 조회 POST : 요청 데이터 처리 (주로 등록) PUT : 리소스 대체, 해당 리소스가 없으면 생성 PATCH : 리소스 부분 변경 DELETE : 리소스 삭제 +) HEAD : GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤..
[김영한/HTTP 웹 기본 지식] - HTTP 모든 것이 HTTP HTTP(HyperText Transfer Protocol) 초기에는 HTML, TEXT 담아 전송하는 프로토콜로 사용됨 현재 거의 모든 형태의 데이터 전송 가능 (이미지, 음성, 영상, 파일, JSON, XML (API), ..) 서버 간 데이터를 주고 받을 때도 대부분 HTTP 사용 지금은 HTTP 시대 HTTP 역사 HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X HTTP/1.0 1996년: 메서드, 헤더 추가 HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 - 업데이트 버전 : RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014) HTTP/2 2015년: 성능 개선 HTTP/3 진행중: ..
[김영한/HTTP 웹 기본 지식] - URI와 웹 브라우저 요청 흐름 URI(Uniform Resource Identifier) "URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다" URI Uniform : 리소스 식별하는 통일된 방식 Resource : 자원 => URI로 식별할 수 있는 모든 것 (제한 X) Identifier : 식별자 => 다른 항목과 구분하는 데 필요한 정보 위치는 변동 가능 but 이름은 불변함 ※ URL(Uniform Resource Locator) : 리소스가 있는 위치 지정 ※ URN(Uniform Resource Name) : 리소스에 이름 부여 urn:isbn:8960777331 (어떤 책의 isbn URN) => URN 이름만으로 실제 리소스 찾는 방법은 보편화 X ∴ 앞으로 URI를 URL과 같은..