# API 문서에 표시된 다양한 매개변수를 적용하여 호출 결과를 확인해봅니다 ![](https://i.imgur.com/d8F3Krv.png) ### Postman이 우리를 대신해서 만들어준 URL의 모습은 결과적으로 어떘나요? - 프로토콜 + Host + 자원경로 + API키 + 추가필터링 쿼리 - Postman에 Query Params의 Key값과 Value값을 넣어주면 자동으로 URL에 추가해준다. ### URL에서 매개변수는 어떻게 표현하나요? - URL + ? + 매개변수=값 + & + 매개변수=값 + & 매개변수(default값) + ... # Request - HTTP 요청의 핵심요소에 대해서 알아봅시다. ## method GET: 리소스 조회 (최근에는 Representation이라는 이름을 많이 사용한다.) POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체, 해당 리소스가 없으면 생성 PATCH: 리소스 부분 변경 DELETE: 리소스 삭제 ### GET 은 언제 어떻게 사용하나요? - 서버에게 resource를 보내달라고 요청합니다. - query String을 통해 필터링된 정보를 받을 수 있습니다. ### POST 는 언제 어떻게 사용하나요? - 서버에게 resource를 보내면서 생성해 달라고 요청합니다. - 주소창에 파라미터를 노출하는 것을 피할 때 사용하며, 요청 Body에 데이터를 넣어 전송합니다. ### PUT 은 언제 어떻게 사용하나요? - 서버에게 resource의 업데이트 하거나 resource가 없다면 새로운 resource를 생성해 달라고 요청합니다. 회원정보 수정 등에 사용됩니다. - PUT은 내부의 값 중 하나만 업데이트하더라도 항상 모든 필드값을 가져와서 모든 필드를 항상 새로운 값으로 교체합니다. ### PATCH 는 언제 어떻게 사용하나요? - 서버에게resource의 업데이트를 요청합니다. 회원정보 수정 등에 사용됩니다. - PATCH는 내부의 값 중 업데이트한 해당 부분만 업데이트 합니다. ### DELETE 는 언제 어떻게 사용하나요? - 서버에게 resource의 삭제를 요청합니다. ## 위의 질문들을 올바르게 살펴봤다면, 아래의 내용들이 무엇인지 설명할 수 있습니다. ### request-query - get요청을 할 때 필터링된 정보를 받을 때 사용한다. ### request-body(payload) - 사용자의 정보를 서버로 보낼때는 주소창에 노출시키지않기 위해 post의 request-body에 정보를 넣어 요청한다. 이 곳에는 주로 JSON이 들어간다. ### header - 서버에 전달되는 사용자 정보(브라우저, 언어, 파일 종류 등)가 존재한다. - 인증과 권한부여의 목적으로 사용된다. header가 존재하지않는다면 악의적인 유저로부터 데이터를 보호할 수 없을 것이다. ### Content-Type 은 무엇인가요? - Http 통신에서 전송되는 데이터의 타입을 명시하기 위해 header에 실리는 정보다. - 타입 종류에는 Multipart Related MIME, XML Media, Application, TEXT 등이 존재한다. ### 파일을 전송할때 주로 사용하는 Content-Type 은 무엇인가요? - 미디어 유형 ( Multipurpose Internet Mail Extensions 또는 MIME 유형 이라고도 함)을 사용한다. 이미지나 동영상 등의 바이너리 파일들이 이에 해당한다. # Response - HTTP 응답의 핵심요소에 대해서 알아봅시다. ## HTTP Status ### 200, 201 , 202, 204 상태 코드가 각각 무엇을 의미하는지 알아봅시다. - 200 : OK - 오류 없이 전송 성공. - 201 : Created - 요청이 성공적으로 처리되었으며, 자원이 생성되었음을 나타내는 성공 상태 응답 코드. - 202 : Accepted - 서버가 클라이언트의 요청을 수락함. - 204 : Non Content - 클라이언트의 요구를 처리했으나 전송할 데이터가 없음. ### 400 , 401 , 403 , 404 , 406 상태 코드가 각각 무엇을 의미하는지 알아봅시다. - 400 : Bad Request - 요청 실패. 문법상 오류가 있어서 서버가 요청사항을 이해하지 못함 - 401 : Unauthorized - 클라이언트가 인증되지 않았거나, 유효한 인증 정보가 부족하여 요청이 거부되었음을 의미하는 상태값 - 403 : Forbidden - 서버가 해당 요청을 이해했지만, 권한이 없어 요청이 거부되었음을 의미하는 상태값 - 404 : Not Found - 문서를 찾을 수 없음. 서버가 요청한 파일이나 스크립트를 찾지 못함. - 406 : Not Acceptable - 받아들일 수 없음. ### 500 , 502 , 504 상태 코드가 각각 무엇을 의미하는지 알아봅시다. - 500 : Internal Server Error - 서버 내부 오류. - 502 : Bad gateway - 게이트웨이 상태 나쁨. - 504 : Gateway timeout - 프록시나 게이트웨이의 역할을 하는 서버에서 볼 수 있음. 초기 서버가 원격 서버로부터 응답을 받을 수 없음. ## 위의 질문들을 올바르게 살펴봤다면, 아래의 내용들이 무엇인지 설명할 수 있습니다. ### 가장 기본적인 성공 요청 응답의 status 코드는 무엇일까요? - 200 ### 인증 또는 권한등의 오류에 대해서 주로 사용되는 status 코드는 무엇일까요? - 401, 403 ### 잘못된 접근, 존재하지 않는 경로에 대한 접근에 주로사용되는 status 코드는 무엇일까요? - 404 ### 서버측 오류에 대해서 주로 사용되는 status 코드는 무엇일까요? - 500 ### status 를 통해서 얻을수 있는 이점은 무엇일까요? - 요청과 응답 사이의 코드만 보고 현재 상황이 어떤지 확인할 수 있다. # URL / URI ### URL 과 URI에 대해서 알아봅시다. - URI : URI는 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)를 의미한다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스다. - URL : URL은 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다. URI의 서브셋이다. <img src = "https://www.charlezz.com/wordpress/wp-content/uploads/2021/02/www.charlezz.com-uri-url-uri-url.png" width="300"> - URI는 식별하고, URL은 위치를 가르킨다. <br> <br> [URI랑 URL 차이점이 뭔데?](https://www.charlezz.com/?p=44767) [HTTP - 위키백과](https://ko.wikipedia.org/wiki/HTTP)