1. form 을 통한 데이터 전송 시 http contents type
- aplication/x-www-form-urlencoded : string을 인코딩해서 전달해야 하기 때문에 urlencoded 라는 타입을 명시하여 사용한다.
- multipart/form-data : 이미지 전송 시, 바이너리 파일로 여러 파트를 끊어서 보내야 할 경우 사용한다.
2. HTML form으로 GET요청도 가능하다.
3. PUT은 일부 업데이트가 아니다.
기존의 리소스를 삭제하고 다른 리소스로 갈아치우는 것이기 때문에, 주의하여 사용해야한다.
4. PATCH는 리소스의 일부 업데이트를 의미한다.
5. HTTP 메소드의 속성
-
안전 : 호출해도 리소스를 변경하지 않는다.
- GET, HEAD, OPTION, TRACE
-
멱등 : 여러번 호출해도 같은 결과를 보여준다.
- GET, PUT, DELETE
-
캐시 : 응답결과의 리소스를 반복하여 사용가능하다.
- GET, HEAD
- POST, PUT : 캐시키를 이용해 body값까지 모두 캐싱해야하기 때문에 번거로워서 잘 쓰이지 않는다.
6. 메서드 설계 시 리소스에 해당되는 것은 '명사'이다.
ex) 미네랄을 캔다 에서 캔다가 중요요소가 아니라 미네랄을 기준으로 메서드를 설계해야한다. GET /minerals -> O GET /dig -> X
7. GET은 스펙상으로 body를 붙힐 수 있다.
구현이 되지 않은 서버가 많은 것일 뿐.
8. HEAD는 body를 붙힐 수 없는 GET이라고 보면된다.
9. POST는 리소스 상태의 변경을 위한 용도로도 사용된다.
POST /car/{id}/start
POST /car/{id}/stop
이때는 메서드에 동사를 사용한다.
10. POST와 PUT의 차이는 리소스의 정보를 어디서 알고있느냐의 차이다.
- POST : 리소스의 생성을 요청하면, 서버에서 생성정보를 보내줌
- PUT : 클라이언트에서 업데이트 할 리소스를 정해서 보내줌. 이 때, 클라이언트 내에 스토어로 리소스를 따로 관리해줘야하는 전제조건이 있다.