Skip to content

Latest commit

 

History

History

Quest08

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Quest 08. 웹 API의 기초

Introduction

  • 이번 퀘스트에서는 웹 API 서버의 기초를 알아보겠습니다.

Topics

  • HTTP Method
  • node.js http module
    • reqres 객체

Resources

Checklist

  • HTTP의 GET과 POST 메소드는 어떻게 다른가요?
    • 다른 HTTP 메소드에는 무엇이 있나요?
  • HTTP 서버에 GET과 POST를 통해 데이터를 보내려면 어떻게 해야 하나요?
    • HTTP 요청의 Content-Type 헤더는 무엇인가요?
    • Postman에서 POST 요청을 보내는 여러 가지 방법(form-data, x-www-form-urlencoded, raw, binary) 각각은 어떤 용도를 가지고 있나요?
  • node.js의 http 모듈을 통해 HTTP 요청을 처리할 때,
    • reqres 객체에는 어떤 정보가 담겨있을까요?
    • GET과 POST에 대한 처리 형태가 달라지는 이유는 무엇인가요?
  • 만약 API 엔드포인트(URL)가 아주 많다고 한다면, HTTP POST 요청의 Content-Type 헤더에 따라 다른 방식으로 동작하는 서버를 어떻게 정리하면 좋을까요?
    • 그 밖에 서버가 요청들에 따라 공통적으로 처리하는 일에는 무엇이 있을까요? 이를 어떻게 정리하면 좋을까요?

Quest

  • 다음의 동작을 하는 서버를 만들어 보세요.
    • 브라우저의 주소창에 http://localhost:8080을 치면 Hello World!를 응답하여 브라우저에 출력합니다.
    • 서버의 /foo URL에 bar 변수로 임의의 문자열을 GET 메소드로 보내면, Hello, [문자열]을 출력합니다.
    • 서버의 /foo URL에 bar 키에 임의의 문자열 값을 갖는 JSON 객체를 POST 메소드로 보내면, Hello, [문자열]을 출력합니다.
    • 서버의 /pic/upload URL에 그림 파일을 POST 하면 서버에 보안상 적절한 방법으로 파일이 업로드 됩니다.
    • 서버의 /pic/show URL을 GET 하면 브라우저에 위에 업로드한 그림이 뜹니다.
    • 서버의 /pic/download URL을 GET 하면 브라우저에 위에 업로드한 그림이 pic.jpg라는 이름으로 다운로드 됩니다.
  • expressJS와 같은 외부 프레임워크를 사용하지 않고, node.js의 기본 모듈만을 사용해서 만들어 보세요.
  • 처리하는 요청의 종류에 따라 공통적으로 나타나는 코드를 정리해 보세요.

Advanced

  • 서버가 파일 업로드를 지원할 때 보안상 주의할 점에는 무엇이 있을까요?