Web/HTTP(8)
-
HTTP 헤더2-캐시와 조건부 요청
캐시 기본 동작 캐시가 없을 때 - 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. - 인터넷 네트워크는 매우 느리고 비싸다. - 브라우저 로딩 속도가 느리다. - 느린 사용자 경험 캐시 적용 - 두번째 요청 시 캐시에 접근하여 캐시에서 응답 결과를 가져온다. - 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. - 비싼 네트워크 사용량을 줄일 수 있다. - 브라우저 로딩 속도가 매우 빠르다. - 빠른 사용자 경험 - 캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. - 이때 다시 네트워크 다운로드가 발생한다. 검증 헤더와 조건부 요청 - 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 상황이 나타난다. 1...
2023.01.23 -
HTTP 헤더1-일반 헤더
HTTP 헤더 - field name “:” OWS field-value - HTTP 전송에 필요한 모든 부가정보 RFC2616(과거) - General 헤더 : 메시지 전체에 적용되는 정보 - Request 헤더 : 요청 정보 - Response 헤더 : 응답 정보 - Entity 헤더 : 엔티티 바디 정보 - 엔티티 헤더는 엔티티 본문의 데이터를 해석할 수 있는 정보 제공 RFC723X 변화 - 엔티티 -> 표현 - 엔티티 : HTTP 메시지(리퀘스트 혹은 리스폰스)의 바디에 적재되는 실제 데이터 - Representation = Representation Metadata + Representation Data ※ Representation : 어떤 리소스의 특정 시점의 상태를 반영하고 있는 정보 -..
2023.01.22 -
HTTP 상태코드
상태 코드 : 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1XX : 요청이 수신되어 처리중(거의 사용하지 않으므로 생략) 2XX : 클라이언트의 요청을 성공적으로 처리 - 200 OK : 요청 성공 - 201 Created : 요청 성공해서 새로운 리소스가 생성됨 - 202 Accepted : 요청이 접수되었으나 처리가 완료되지 않았음 - 204 No Content : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 ex) 웹 문서 편집기에서 save 버튼 3XX : 리다이렉션 : 요청을 완료하기 위해 유저 에이전트의 추가 조치 필요 ※ 리다이렉션 : 웹 브라우저는 3XX 응답의 결과에 Location 헤더가 있으면, Location위치로 자동 이동 영구 ..
2023.01.22 -
HTTP 메서드 활용
클라이언트에서 서버로 데이터 전송 데이터 전달 방식 2가지 - 쿼리 파라미터를 통한 데이터 전송 : GET(주로 정렬 필터) - 메시지 바디를 통한 데이터 전송 : POST, PUT, PATCH(회원 가입, 상품 주문 등) 4가지 상황 정적 데이터 조회 - 이미지, 정적 텍스트 문서 - 조회는 GET 사용 - 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 동적 데이터 조회 - 주로 검색, 게시판 목록에서 정렬 필터(검색어) - 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용 - 조회는 GET 사용 - GET은 쿼리 파라미터 사용해서 데이터를 전달 ※ 동적 데이터 : 서버에서 실시간으로 적용 되어지는 데이터 정적 데이터 : 메모리에 데이터를 올려놓은..
2023.01.22 -
HTTP 메서드
HTTP API URI 설계 : 가장 중요한 것은 리소스 식별!!!!! - 리소스란? ex) '미네랄을 캐라' -> 미네랄이 리소스 - 계층 구조상 상위를 컬렉션으로 보고 복수 단어 사용 권장(member -> members) - 리소스와 해당 리소스를 대상으로 하는 행위를 분리 - 리소스(회원), 행위(조회, 등록, 수정, 삭제) - 리소스는 명사, 행위는 동사 HTTP 메서드 - GET, POST GET - 리소스 조회 - 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 스트링)를 통해서 전달 POST - 요청 데이터 처리 - 메시지 바디를 통해 서버로 요청 데이터 전달 - 서버는 요청 데이터를 처리(메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능 수행) - 단순히 데이터를 생성하거나..
2023.01.22 -
HTTP 기본
HTTP(HyperText Transfer Protocol) 모든 것이 HTTP - HTTP 메시지에 모든 것을 전송 - HTML, TEXT, IMAGE, 음성, 파일, 영상, JSON, XML 등 거의 모든 형태의 데이터 전송 가능 * HTTP 역사 - HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X - HTTP/1.0 1996년: 메서드, 헤더 추가 - HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 - HTTP/2 2015년: 성능 개선 - HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선 HTTP 특징 클라이언트 서버 구조 - 클라이언트는 서버에 요청을 보내고, 응답을 대기 - 서버가 요청에 대한 결과를 만들어서 응답 무상태 프로토콜(Stat..
2023.01.22