징징이 : (API 더럽게 쓰네....)
Application Programming Interface
- Interface : 의사소통이 가능하도록 만들어진 접점
ex) 메뉴판, 리모콘, 마우스
서버는 리소스 전달을 위해서 인터페이스인 API 문서를 제공해줘야 한다.
클라이언트에서는 서버가 어떻게 구성됐는지를 모르기 때문에 리소스 파악이 안되므로, 서버가 API를 제공해줘야 하는 것이다.
인터넷에서 데이터를 요청할 때 HTTP를 사용하여 주소(url, uri)를 통해 접근할 수 있다.
메서드 | 설명 | 예시 |
---|---|---|
GET | 데이터 조회 READ | GET /students/1 |
POST | 새로운 데이터 추가 CREATE | POST /students/2 |
PUT(전부 수정) / PATCH(부분 수정) | 지정 데이터 갱신, 업데이트 UPDATE | PUT /students/2 |
DELETE | 데이터 삭제 DELETE | DELETE /students/1 |
OPTIONS |
응답대역 | 응답코드 | 설명 |
---|---|---|
성공 | 200 | OK(요청이 성공적으로 수행) |
201 | Created (POST,PUT 메소드로 서버에 파일 생성됨) | |
202 | Accepted(웹 서버가 명령 수신함) | |
203 | Non-authoritative information (서버가 클라이언트 요구 중 일부만 전송) | |
204 | No content, (PUT, POST, DELETE 요청의 경우 성공은 했지만 전송할 데이터가 없는 경우) | |
리다이렉션 | 301 | Moved permanently (요구한 데이터를 변경된 타 URL에 요청함 / Redirect된 경우) |
302 | Not temporarily | |
304 | Not modified (컴퓨터 로컬의 캐시 정보를 이용함, 대개 gif 등은 웹 서버에 요청하지 않음) | |
클라이언트 요청에러 | 400 | Bad Request (사용자의 잘못된 요청을 처리할 수 없음) |
401 | Unauthorized (인증이 필요한 페이지를 요청한 경우) | |
402 | Payment required(예약됨) | |
403 | Forbidden (접근 금지, 디렉터리 리스팅 요청 및 관리자 페이지 접근 등을 차단) | |
404 | Not found, (요청한 페이지 없음) | |
405 | Method not allowed (혀용되지 않는 http method 사용함) | |
407 | Proxy authentication required (프락시 인증 요구됨) | |
408 | Request timeout (요청 시간 초과) | |
410 | Gone (영구적으로 사용 금지) | |
412 | Precondition failed (전체 조건 실패) | |
414 | Request-URI too long (요청 URL 길이가 긴 경우임) | |
서버에러 | 500 | Internal server error (내부 서버 오류) |
501 | Not implemented (웹 서버가 처리할 수 없음) | |
503 | Service unnailable (서비스 제공 불가) | |
504 | Gateway timeout (게이트웨이 시간 초과) | |
505 | HTTP version not supported (해당 http 버전 지원되지 않음) |