HTTP 웹 기본 지식28 HTTP 메서드[HTTP 메서드의 속성] HTTP 메서드의 속성 안전(Safe Methods) 멱등(Idempotent Methods) 캐시가능(Cacheable Methods) 안전(Safe) 호출해도 리소스를 변경하지 않음 GET, HEAD는 조회만 하기때문에 안전 POST, PUT, PATCH, DELETE는 리소스에 변경이 생기기 때문에 안전하지 않음 Q: 그래도 계속 호출해서, 로그 같은게 쌓여서 장애가 발생하면? A: 안전은 해당 리소스만 고려한다. 그런 부분까지 고려하지 않음 멱등(Idempotent Methods) f(f(x)) = f(x) 한 번 호출하든 두 번 호출하든 100번 호출하든 결과가 똑같음 멱등 메서드 GET -- 한 번 조회하든, 두 번 조회하든 같은 결과가 조회 됨 PUT -- 결과를 대체한다. 따라서 같은 요청.. 2022. 11. 24. HTTP 메서드[PUT, PATCH, DELETE] PUT 리소스를 대체 리소스가 있으면 대체 리소스가 없으면 생성 쉽게 이야기해서 덮어버림(Overwirte) POST와 차이점 클라이언트가 리소스를 식별 클라이언트가 리소스 위치를 알고 URI 지정(/members/100) 리소스를 완전히 대체 업데이트가 아닌 완전 대체 변경된 내용에 대해서만 부분적 변경이 아님 리소스 부분 변경은 PATCH PATCH 리소스 부분 변경 리소스 부분 변경 100번 회원의 age를 50으로 변경 시 PATCH를 보낸다면 PUT과는 다르게 회원 정보에서 age만 변경 특정 회원의 생성 Location을(ex:/members/100) DELETE로 보낸다면 서버에서는 해당 회원정보를 삭제 DELETE 리소스를 제거할 때 사용 특정 회원의 생성 Location을(ex:/memb.. 2022. 11. 24. HTTP 메서드[GET, POST] HTTP 메서드 종류 주요 메서드 GET -- 리소스 조회 POST -- 요청 데이터 처리, 주로 등록에 사용 PUT -- 리소스를 대체, 해당 리소스가 없으면 생성 PATCH -- 리소스 부분 변경 DELETE -- 리소스 삭제 기타 메서드 HEAD -- GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환 OPTIONS -- 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용) CONNECT -- 대상 자원으로 식별되는 서버에 대한 터널을 설정 TRACE -- 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행 GET 리소스 조회 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달 메시지 바디를 사용해서 데이터를 전달할 .. 2022. 11. 24. HTTP 메서드[HTTP API를 만들어보자] 요구사항 - 회원 정보 관리 API를 만들기 회원 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 잘못된 API URI 설계 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member 회원 수정 /update-member 회원 삭제 /delete-member 가장 중요한 것은 리소스 식별 API URI 고민 리소스의 의미는 뭘까? 회원을 등록하고 수정하고 조회하는게 리소스가 아님 ex) 미네랄을 조회하기 -> 회원이 리소스 회원이라는 개념 자체가 바로 리소스 리소스를 어떻게 식별하는게 좋을까? 회원을 등록하고 수정하고 조회하는 것을 모두 배제 회원이라는 리소스만 식별하면 된다. -> 회원 리소스를 URI에 매핑 API URI 설.. 2022. 11. 24. HTTP 기본[HTTP 메시지] HTTP 메시지 구조 요청 메시지도 body 본문을 가질 수 있음 요청 메시지는 전송할 데이터가 없다면 CRLF 넣고 끝내도 됨 HTTP 공식 스펙 https://tools.ietf.org/html/rfc7230#section-3 시작 라인) 요청 메시지 Start-line -- Request-line / Status-line Request-line -- Method SP(공백) Request-Target SP(공백) HTTP-Version CRLF(엔터) HTTP Method (GET 조회) 종류 -- GET, POST, PUT, DELETE... 서버가 수행해야 할 동작 지정 GET -- 리소스 조회 POST -- 요청 내역 처리 Request-Target (요청 대상) -- /search?q=hel.. 2022. 11. 24. HTTP 기본[비 연결성(connectionless)] 비 연결성 HTTP는 기본이 연결을 유지하지 않는 모델 일반적으로 초 단위의 이하의 빠른 속도로 응답 1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작음 ex) 웹 브라우저에서 계속 연속해서 검색 버튼을 누르지는 않는다. 서버 자원을 매우 효율적으로 사용할 수 있음 연결을 유지하는 모델 여러 클라이언트의 연결을 유지한다면 서버의 자원이 계속 소모 클라이언트2, 클라이언트3이 요청을 안보내더라도 연결중이므로 자원을 계속 소모 연결을 유지하지 않는 모델 요청하고 응답할 때만 연결하고 종료 서버를 유지하는 자원을 최소한으로 줄일 수 있음 비 연결성의 한계와 극복 TCP/IP 연결을 새로 맺을 때마다 3 way handshake로 인한 시간이 추가 됨 웹 브라우.. 2022. 11. 23. 이전 1 2 3 4 5 다음