HTTP 요청하기 (HTTP Method)

iamokian·2022년 8월 3일
0

클론코딩하면서 알게된것들을 추가적으로 알아보고, 터득한것을 상기시키기 위한 메모같은 포스팅:)

w3chools에서 보고 정리를 해봤다.(추가적인건 검색하면서!)


HTTP란?

HTTP는 클라이언트와 서버 간의 통신을 가능하게 하도록 설계된것이다.
HTTP는 클라이언트와 서버 간의 요청-응답 프로토콜로 작동한다.

ex) 클라이언트(브라우저)가 서버에 HTTP요청을 보내면 서버는 클라이언트에 응답을 반환한다. 응답에는 요청에 대한 상태 정보가 포함되며 요청된 콘텐츠도 포함될 수 있다.

비동기 HTTP 통신 종류예시

  • jQuert Ajax
  • Fetch
  • Axios

말고도 뭔가 이것저것 더 있었는데, 우선 내가 들어보고 접해본것만 적어본다.


HTTP 메소드

  • GET

    GET은 지정된 리소스에서 데이터를 요청하는데 사용된다. 쿼리 문자열(이름/값 쌍)은 GET 요청의 URL로 전송된다.

    /test/demo_form.php?name1=value1&name2=value2

    참고사항

    • GET 요청은 캐시할 수 있다.
    • GET 요청은 브라우저 기록에 남아있다.
    • GET 요청은 북마크에 추가할 수 있다.
    • 민감한 데이터를 처리할 때 GET 요청을 사용해서는 안된다.
    • GET 요청에는 길이 제한이 있다.
    • GET 요청은 데이터 요청에만 사용된다.(수정 불가).
  • POST

    POST는 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는데 사용된다.
    POST를 통해 서버로 전송된 데이터는 HTTP 요청의 요청 본문에 저장된다.

    POST /test/demo_form.php HTTP/1.1
    Host: w3schools.com
    
    name1=value1&name2=value2

    참고 사항

    • POST 요청은 캐시되지 않는다.
    • POST 요청은 브라우저 기록에 남아 있지 않는다.
    • POST 요청을 북마크에 추가할 수 없다.
    • POST 요청에는 데이터 길이에 대한 제한이 없다.
  • PUT

    PUT은 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용된다.
    POST와 PUT의 차이점은 동일한 PUT 요청을 여러 번 호출하면 항상 동일한 결과가 생성된다. 반대로 POST 요청을 반복적으로 호출하면 동일한 리소스를 여러 번 생성하는 부작용이 있다.
    클론코딩영역에서도 경험을 했지만 복습과 이해를 위해 post와 put의 차이를 검색해보았다.

    POST로 2개의 게시글올리기 요청을 한다면 2개의 게시물이 등록되는 것이고, PUT으로 2개의 게시글올리기 요청을 한다면 두번째 요청에서 이미 첫번째때 생성된 글이 있으므로 신규생성을 하지않고 첫번째 글을 교체한다.

  • HEAD는 GET과 거의 동일하지만 응답 본문이 없다.
    즉, GET/users가 사용자 목록을 반환하면 HEAD/users는 동일한 요청을 하지만 사용자 목록은 반환하지 않는다.
    HEAD 요청은 큰 파일이나 응답 본문을 다운로드하기 전과 같이 실제로 GET 요청을 하기 전에 GET요청이 반환할 내용을 확인하는 데 유용하다.

    실제 문서를 요청하는 것이 아니라, 문서 정보를 요청하는 것이다. 그러므로 본문없이 HTTP헤더 정보만을 보내준다.

  • DELETE

    지정된 데이터를 삭제한다.

  • PATCH

    리소스에 부분 수정을 적용하는데 사용된다.
    ...설명만 보면 put과 동일하게 생각할 수 있을 것 같다. 설명이 빈약해 검색을 추가로 해보았다. 그리고 이 부분은 직접 경험을 한다면 이해가 쉬울것도 같다.

    PUT의 경우 전체적인 업데이트를하고 PATCH의 경우 부분적인 업데이트라고 생각하면 좋다.

  • OPTIONS

    대상 리소스에 대한 통신 옵션을 설명한다.

  • CONNECT

    요청된 리소스와 양방향 통신(터널)을 시작하는데 사용된다.

  • TRACE

    대상 리소스의 경로를 테스트하는 메시지 루프백 테스트를 수행하는데 사용된다.(디버깅 목적에 유용)


GET과 POST 한눈에 비교하기

--GETPOST
캐시요청OX
브라우저기록OX
북마크OX
길이제한OX
용도리소스 요청리소스 생성
응답코드200201
profile
필기하고 기록하고

0개의 댓글