반응형

Back-end/HTTP 8

[HTTP 웹 기본 지식] 08. HTTP 헤더 2 - 캐시와 조건부 요청

캐시 기본 동작 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 느린 사용자 경험 캐시 적용 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠른다. 빠른 사용자 경험 캐시 시간 초과 캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. 이때 다시 네트워크 다운로드가 발생한다. 검증 헤더와 조건부 요청 캐시 시간 초과 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 상황이 나타난다. 서버에서 기존 데이터를 변경함 서버에서 기존 데이터를 변경하지 않음 캐시 만료 ..

Back-end/HTTP 2021.03.09

[HTTP 웹 기본 지식] 07. HTTP 헤더 1 - 일반 헤더

HTTP 헤더 개요 HTTP 헤더 header-field = field-name ":" OWS field-value OWS (OWS: 띄어쓰기 허용) field-name은 대소문자 구분 없음 용도 HTTP 전송에 필요한 모든 부가정보 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 표준 헤더가 너무 많음 필요시 임의의 헤더 추가 가능 (helloworld: hihi) HTTP - RFC2616 (과거) 헤더 General 헤더: 메시지 전체에 적용되는 정보 (Connection: close) Request 헤더: 요청 정보 (User-Agent: Mozilla/5.0) Response 헤더: 응답 정보 (Server: Apache) Entitl..

Back-end/HTTP 2021.03.08

[HTTP 웹 기본 지식] 06. HTTP 상태코드

HTTP 상태코드 소개 상태코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational): 요청이 수신되어 처리중 (거의 사용하지 않으므로 생략) 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요층을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정사 요청을 처리하지 못함 만약 모르는 상태 코드가 나타나면? 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? 클라이언트는 상위 상태코드로 해석해서 처리 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 됨 299 -> 2x..

Back-end/HTTP 2021.03.05

[HTTP 웹 기본 지식] 05. HTTP 메서드 활용

클라이언트에서 서버로 데이터 전송 데이터 전달 방식 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터 (검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 상황 정적 데이터 전송 이미지, 정적 텍스트 문서 조회는 GET 사용 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 동적 데이터 조회 주로 검색, 게시판 목록에서 정렬 필터 (검색어) 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용 조회는 GET 사용 GET은 쿼리 파라미터 사용해서 데이터를 전달 HTML Form을 통한 데이터 전송 HTML Form submit시 POST 전송 (회원 가입, 상품 주문, 데이터 변경..

Back-end/HTTP 2021.03.04

[HTTP 웹 기본 지식] 04. HTTP 메서드

HTTP API를 만들어보자 가장 중요한 것은 리소스 식별 요구사항 : 회원정보 관리 API를 만들어라 회원 목록 조회 /members 회원 조회 /members/{id} 회원 등록 /members/{id} 회원 수정 /members/{id} 회원 삭제 /members/{id} API URI 설계 (리소스 식별, URI 계층 구조 활용) 리소스의 의미? 회원을 등록하고 수정하고 조회하는 것이 리소스 X 회원이라는 개념 자체가 바로 리소스 리소스를 어떻게 식별? 회원을 등록하고 수정하고 조회하는 것은 모두 배제 회원이라는 리소스만 식별하면 된다. -> 회원 리소스를 URI에 mapping 리소스와 행위를 분리 URI는 리소스만 식별 리소스와 해당 리소스를 대상으로 하는 행위를 분리 리소스 : 회원 (명사)..

Back-end/HTTP 2021.03.02

[HTTP 웹 기본 지식] 03. HTTP 기본

모든 것이 HTTP HTTP(HyperText Transfer Protocol) HTTP 메시지에 모든 것을 전송 HTML, TEXT IMAGE, 음성, 영상, 파일 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 진행 중: TCP 대신에 UDP 사용, 성능 개선 ..

Back-end/HTTP 2021.02.28

[HTTP 웹 기본 지식] 02. URI와 웹 브라우저 요청 흐름

URI(Uniform Resource Identifier) URI Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것 (제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URI를 URL과 같은 의미로 이야기하겠음 (강의에서) URL(Uniform Resource Locator) Locator: 리소스가 있는 위치를 지정 위치는 변할 수 있다. URN(Uniform Resource Name) Name: 리소스에 이름을 부여 이름은 변하지 않는다. urn:isbn:8960777331 (어떤 책의 isbn URN) URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음 URL의 전체 문법 (scheme://[userinf..

Back-end/HTTP 2021.02.26

[HTTP 웹 기본 지식] 01. 인터넷 네트워크

IP(Internet Protocol) 인터넷 프로토콜의 역할 지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 중간에 패킷이 사라지면? (패킷 소실) 패킷이 순서대로 안오면? (패킷 전달 순서 문제 발생) 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? TCP(Transmission Control Protocol), UDP(User Datagram Protocol) 인터넷 프로토콜 스택의 4계층 애플리케이션 계층 - HTTP, FTP 전송 계층 - TCP, UDP 인터넷 계층 - IP 네트워크 인터페이스 계층 - LAN..

Back-end/HTTP 2021.02.25
반응형
LIST