요구사항회원정보 관리 api를 만들어라회원 목록 조회 / read-member-list회원 조회 / read-member-by-id회원 등록 / create-member회원 수정 / update-member회원 삭제 / delete-member=> 좋은 URI 설계일까
리소스를 대체(완전히 대체!) \- 리소스가 있으면 대체리소스가 없으면 생성쉽게 이야기해서 덮어버림중요! 클라이언트가 리소스를 식별 \- 클라이언트가 리소스 위치를 알고 URI지정POST와 차이점 : 예) PUT /members/100 HTTP/1.1 Content
HTTP 메서드 활용 클라이언트에서 서버로 데이터 전송 HTTP API 설계 예시 클라이언트에서 서버로 데이터 전송 데이터 전달 방식은 크게 2가지 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST,
HTTL API - 컬렉션 \- POST 기반 등록예) 회원 관리 API 제공HTTP API - 스토어 \- PUT 기반 등록예) 정적 컨텐츠 관리, 원격 파일 관리HTRL FORM 사용 \- 웹 페이지 회원 관리GET, POST 만 지원POST - 신규 자원
: 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능1xx (Informational) : 요청이 수신되어 처리중 => 거의 사용 X2xx (Successful) : 요청 정상 처리3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요4xx
: 요청을 완료하기 위해 유저 에이전트(클라이언트 프로그램, 웹브라우저)의 추가 조치 필요300 Multiple Choices\*\* 중요 301 Moved Permanently302 Found303 See other304 Not Modified307 Temporary
클라이언트의 요청에 잘못된 문법등으로 서버가 요청을 수행할 수 없음오류의 원인이 클라이언트에 있음\- 중요! 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 재시도가 실패함.: 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음요청 구문
협상(콘텐츠 네고시에이션) : 클라이언트가 선호하는 표현 요청 Accept : 클라이언트가 선호하는 미디어 타입 전달 Accept-Charset : 클라이언트가 선호하는 문자 인코딩 Accept-Encoding : 클라이언트가 선호하는 압축 인코딩 Accept-Lan
: Transfer-Encoding• Range, Content-Range단순 전송압축 전송분할 전송범위 전송: content에 대한 길이를 알고 있을 때: Content-Encoding: gzip 절반 이상 줄어드는 경우 많음.:chunked 덩어리로 쪼개서 보낼것.
Host : 요청한 호스트 정보(도메인)Location : 페이지 리다이렉션Allow : 허용가능한 HTTP 메서드Retry-After : 유저 에이전트가 다음 요청을 하기까지 기다려야하는 시간요청에서 사용필수하나의 서버가 여러 도메인을 처리해야 할 때하나의 IP 주소
Set-Cookie : 서버에서 클라이언트로 쿠키 전달(응답)Cookie : 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP요청시 서버로 전달: /welcome에서 사용자가 로그인했는지 아닌지 구분할 수 있는 방법 없다. HTTP는 무상태(Stateless) 프로
: 요청을 하면 1.1M의 네트웍을 차지하면서 전송 : 헤더와 바디부를 다시 만들어서 1.1M로 전송함데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야한다.인터넷 네트워크는 매우 느리고 비싸다브라우저 로딩 속도가 느리다느린 사용자 경험캐시 덕
Cache-Control : 캐시 제어Pragma : 캐시 제어(하위 호환)Expires : 캐시 유효기간(하위 호환): 캐시 지시어Cache-Control:Max-age캐시 유효 시간, 초단위Cache-Control:no-cache데이터는 캐시해도 되지만, 항상 원(
: 한국에 있는 클라이언트가 미국에 있는 원 서버에 접근할때 이미지 하나 다운로드 받으려면 0.5ms를 기다려야함.. 프록시 캐시 서버를 한국 어디엔가 두게되면 한국에 있는 클라이언트가 이 곳을 거쳐서 접근하게 만들어놓음.한국 어딘가에 있는 서버에서 다운받기 때문에 응