220323 Knowledge boxing
HTTP에서 URI의 의미
Resource를 식별하는것으로 따라서 Resource를 URI로 만들어야한다.
HTTP Method 란
클라이언트가 서버에게 바라는 행동을 하게 하기 위한 클라이언트 명령어 처리방식이다.
행위로 조회, 등록, 삭제, 변경이 있다.
서버에게 사전에 정의된 정보 처리 방식이 있으며 웹서버의 특성상 사용자가 많기 때문에 데이터량을 최소화 하기 위해 클라이언트가 서버에게 리소스만 요청하는 방식으로 정보를 처리한다.
▶ 주요 Method
GET : 리소스 조회.
POST : (만능) 요청 데이터 처리, 주로 등록에 사용한다. 정보를 추가한다. 정보가 사전에 있다면 그 정보를 실행한다.
PUT : 리소스를 대체, 해당 리소스가 없으면 생성한다. 해당 리소스 덮어쓰기.
PATCH : 해당 리소스 부분 변경.
DELETE : 해당 리소스 삭제.
· GET
GET /search?q=hello&ko HTTP/1.1 Host:www.google.com
리소스를 조회하며 서버에 전달하고 싶은 데이터는 query를 통해서 전달한다.
Message body를 통해서 데이터를 전달 할 수 있지만 굳이 권장하지 않는다.
Start-line에 들어간다.
정적데이터, 동적데이터가 있다.
"get과 post는 비교할 대상이 아니다."
· POST (가장많이 쓰인다.)
요청 데이터를 처리한다.
대상 리소스가 리소스의 고유 한 의미 체계에 따라 요청에 포함된 표현을 처리하도록 요청한다.
☞ 예를 들어 POST는 다음과 같은 기능에 사용
• HTML양식에입력된필드와같은데이터블록을데이터처리프로세스에제공
• 예) HTML FORM에 입력한 정보로 회원 가입, 주문 등에서 사용
• 게시판,뉴스그룹,메일링리스트,블로그또는유사한기사그룹에메시지게시
• 예) 게시판 글쓰기, 댓글 달기
메세지 바디를 통해서 메세지를 전달한다.
서버는 요청 데이터를 처리하고 메세지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행한다.
주로 전달된 데이터로 신규 리소스를 등록하고 프로세스를 처리하는데 사용한디.
리소스마다 다양하게 데이터를 처리한다.
주로 "등록" 할 때 가장 많이 사용한다.
URI에 POST요청이 오면 요청 데이터를 처리하기위해 리소스마다 정립을 해야한다.
일반적으로 새 리소스를 등록하거나 요청 데이터를 처리하거나 같은 애매한 경우 POST를 사용한다.
![](https://blog.kakaocdn.net/dn/bcLmES/btrw6WkFoGK/6jkwN55vTIJc6t10kK5szK/img.png)
![](https://blog.kakaocdn.net/dn/qKkNV/btrw708bYXR/frvKPJlfcnGViu14eoYLe0/img.png)
· PUT
수정이 아닌 대체(덮어쓰기)의 개념이다. (파일 덮어쓰기의 개념과 같다.)
· 클라이언트가 서버의 리소스를 식별한 상태에서 써야한다.
· post보다 우선하다.
![](https://blog.kakaocdn.net/dn/EuLJG/btrw6gDPIQC/tePwZpEZcdUQ3W4RpFzH1K/img.png)
![](https://blog.kakaocdn.net/dn/bqzdgS/btrw7Rp1bM9/Zt4Kf5IJb7GRfzm2UEwX31/img.png)
· PATCH
업데이트의 개념이다.
리소스의 일부를 수정한다.
![](https://blog.kakaocdn.net/dn/bDXHmV/btrwWgyCccb/HKK1EJhWUALJmImddJNFb1/img.png)
· Delete
삭제의 개념이다.
Body는 당연히 필요가 없다.
![](https://blog.kakaocdn.net/dn/bS7N6w/btrw6g4UkzZ/qboFeSZaZGnYMj6PCpvaFK/img.png)
HTTP 메소드 속성
· 안전 (Safe Method)
리소스가 변하는가?
리소스의 안전만을 보장한다.
· 멱등 (Idempotent Moethod)
n번 호출시 결과가 같은가? 같으면 멱등하다.
· 캐시기능
응답결과를 캐싱해도 되는가?
"HTTP 메소드의 속성은 결국 뻔한 이야기다."
![](https://blog.kakaocdn.net/dn/dJrKZY/btrwZ0a0Crb/YsRoRqYQbAprKast13j3r0/img.png)
HTTP Method의 활용
클라이언트에서 서버로 데이터를 전송하는 방식
쿼리 파라미터는 헤더의 스타트 라인으로 들어간다.
쿼리 파라미터 이용 HTTP Message 의 Header를 이용
메세지 바디를 이용 HTTP Message의 Message Body (payload)
▶ 정적 데이터의 조회
이미지, 정적 텍스트 문서, 게시판 읽기
GET 에서 사용한다.
![](https://blog.kakaocdn.net/dn/bPpEze/btrwXAjleQw/29vir4MxykSs413kugUYAk/img.png)
.
▶ 동적 데이터의 조회
GET을 사용하고 쿼리 파라미터를 사용한다.
조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건의 주로 사용한다.
쿼리파라미터가 필요하다.
![](https://blog.kakaocdn.net/dn/bc5STb/btrw7R4DucR/Q4ZCik5W1OxCc7suejR1ZK/img.png)
POST - FORM 태그를 이용한다.
암호화는 암호화 모듈이 한다. head와 body는 암호화와 상관이없다.
![](https://blog.kakaocdn.net/dn/dwnRrN/btrw6g4Uuu0/bLjXb93x4kyRCaGplJ3nnK/img.png)
"GET은 Body를 사용하지 않고 FORM은 Body를 사용하는것이 일반적이다."
'HTTP' 카테고리의 다른 글
HTTP, URI, HTTP Message (0) | 2022.04.05 |
---|