HTTP 웹 기본지식 - HTTP 메서드

Bluewind·2024년 7월 13일
0

withSIN

목록 보기
6/9
post-thumbnail

해당 글은 인프런의 김영한님의 강의인 '모든 개발자를 위한 HTTP 웹 기본 지식'을 공부하며 작성한 글입니다.

HTTP 메서드

URI를 설계할 때, Resource가 무엇인지를 보고 해당 리소스를 URI에 녹이자
어떤것을 할지를 나타내는 동사는 HTTP 메서드로 표현한다.

  • GET : 리소스 조회
  • POST : 요청 데이터를 처리 (주로 등록)
  • PUT : 리소스를 대체, 해당 리소스가 없으면 생성
  • PATCH : 리소스 부분 변경
  • DELETE : 리소스 삭제

GET

서버에 전달하고 싶은 데이터는 쿼리를 통해서 전달.
메세지 바디를 통하여 데이터를 전달할 수 있지만, 지원하지 않는 곳이 많아 실무에서 권장하지 않는다고 함.

POST

  • 요청 데이터 처리
  • 메세지 바디를 통하여 서버로 요청 데이터 전달

어떤 처리?

  1. 새 리소스를 생성
  2. 요청 데이터 처리
  3. 다른 메서드로 처리하기 애매한 경우

애매하면 POST

PUT

  • 리소스를 덮어써버리는 개념
  • 클라이언트가 리소스의 위치를 알고 URI를 지정한다

PATCH

  • 리소스를 부분적으로 변경

DELETE

  • 리소스 제거

HTTP 메서드의 속성

  • 안전 (Safe Methods)
    • 호출해도 리소스를 변경하지 않는다.
  • 멱등 (Idempotent Methods)
    • 한 번 호출하든 백번 호출하든 결과가 똑같다
    • GET, PUT, DELETE
    • POST는 멱등하지 않기 때문에 설계할 때 주의가 필요하다
  • 캐시가능 (Cacheable Methods)
    • 응답 결과 리소스를 캐시해서 사용해도 되는지?
    • GET, HEAD, POST, PATCH이 캐시가 가능하지만 실제로는 GET, HEAD 정도만 캐시 사용

HTML Form 전송

HTML 안에서 form 태그안에 삽입한 submit 이벤트가 발동되면 전송되는 형식.

  • HTML form submit 시 POST 전송
    • Content-type : application/x-www-form-urlencoded 사용
    • form의 내용을 메시지 바디를 통하여 key = value 형태로 전송
    • url encoding 처리 (그래서 content-type이 urlencoded)
  • GET 전송도 지원
    • Content-Type : multipart/form-data
    • 파일 업로드 같은 바이너리 데이터 전송 시 사용
    • 다른 종류의 여러 파일과 폼의 내용을 함께 전송할 수 있다

HTML Form 전송은 GET, POST만 지원

HTML API 전송

  • 서버에서 서버로 통신하거나 앱 클라이언트와 통신할 때 사용
  • 웹 클라이언트에서는 HTML form 전송 대신 ajax 통신 시 사용
  • POST, PUT, PATCH : 메세지 바디를 통하여 데이터 전송
  • GET : 조회, 쿼리 파라미터로 데이터 전달
  • Content-Type : application/json을 주로 사용
profile
NO EFFORT, NO RESULTS

0개의 댓글