DevOps BootCamp/웹 서비스

HTTP 기초 두 번째 발표

cloudmaster 2023. 3. 16. 13:49

1.

★ CRUD : 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말입니다.

 > CRUD와 HTTP 요청 메서드의 관계를 설명하기 전에, API에 대한 이해가 필요합니다.

 

API : 클라이언트와 서버가 서로 다른 프로그램에서 요청과 응답을 주고받을 수 있게 만든 체계입니다.

 > 클라이언트의 요청이 잘 처리되려면 '정확한 곳'에 요청을 보내야 하고, '정확한 곳'의 주소는 서버 컴퓨터주소/** 형태로 되어 있습니다.

 

CRUD                             요청의 뜻                            각 요청의 주소

Create 올려줘 컴퓨터주소/ timelinecreate
Read 불러와줘 컴퓨터주소/timelineread
Update 바꿔줘 컴퓨터주소/timelineupdate
Delete 지워줘 컴퓨터주소/timelinedelete

★ HTTP 요청 메소드

 - HTTP(Hypertext Transfer Protocol): 웹상에서 클라이언트와 서버 간에 요청/응답으로 데이터를 주고받을 수 있는 프로토콜입니다.

 - HTTP Request 메서드 : 클라이언트가 웹서버에게 요청하는 목적 및 그 종류를 알리는 수단입니다.

 

 > CRUD 요청은 각각의 주소를 가지게 되고, 클라이언트는 각각의 주소로 요청을 보내게 됩니다. 그런데 만약 CRUD마다 주소가 생긴다면 주소의 수가 많아져 관리가 어려워지고, 기능이 중복인 API는 버그가 생길 것입니다.

 

이를 해결하기 위해 CRUD를 하나의 주소로 관리하는 RESTful API를 사용하기 시작했습니다. RESTful API에선 요청을 보낼 때 어떤 요청을 보냈는지 파악할 수 있는 일종의 '표시'를 붙여 전송하며, 이 표시는 '메서드'라 칭합니다.

 

CRUD                              요청의 뜻                              메소드

Create 올려줘 POST
Read 불러와줘 GET
Update 바꿔줘 PUT(전체)/PATCH(일부)
Delete 지워줘 DELETE

또한 메소드 중 

 POST
 클라이언트와 서버에 데이터를 보내기 위한 메소드 중 하나입니다. 

 새로운 데이터를 생성하거나 기존의 데이터를 수정, 대체할 때 사용됩니다.

 클라이언트가 데이터를 보내면 서버는 데이터를 처리하고 적절한 응답을 반환합니다.

 보통 폼 데이터를 전송할 때 사용됩니다.

 

PUT

 클라이언트가 서버에 데이터를 업데이트하기 위한 메소드 중 하나입니다.

 존재하는 데이터를 수정하거나 대체할 때 사용합니다.

 클라이언트가 데이터를 서버에 보낼 때, 해당 데이터가 있으면 대체하고, 없으면 새로 생성합니다.

 서버가 요청을 받으면 데이터를 업데이트하거나 생성, 적절한 응답을 반환합니다.

 

[출처] CRUD와 HTTP 요청 메소드 (velog.io)

 

CRUD와 HTTP 요청 메소드

멀게만 느껴졌던 CRUD와 HTTP 요청 메소드에 한 뼘 더 가까이

velog.io

2.

 2xx : 이 클래스의 상태코드는 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킵니다.

 - 200(성공) : 서버가 요청을 제대로 처리했다는 뜻입니다.

 - 201(작성됨) : 성공적으로 요청되었으며 서버가 새 리소스를 작성했습니다.

 - 202(허용됨) : 서버가 요청을 접수했지만 아직 처리하지 않았습니다.

 - 203(신뢰할 수 없는 정보) : 서버가 요청을 성공적으로 처리했지만, 다른 소스에서 수신된 정보를 제공하고 있습니다.

 - 204(콘텐츠 없음) : 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않습니다.

 - 205(콘텐츠 재설정) : 서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않는다. 204 응답과 달리 이 응답은 요청자가 문서 보기를 재설정할 것을 요구합니다.

 - 206(일부 콘텐츠) : 서버가 GET요청의 일부만 성공적으로 처리했습니다.

 

3xx : 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 합니다.

 - 300(여러 선택항목) : 서버가 요청에 따라 여러 조치를 선택할 수 있습니다. 서버가 사용자 에이전트에 따라 수행할 작업을 선택하거나, 요청자가 선택할 수 있는 작업 목록을 제공합니다.

 - 301(영구 이동) :  요청한 페이지를 새 위치로 영구적으로 이동했습니다. GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달됩니다.

 - 302(임시 이동) : 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 합니다.

 - 303(기타 위치 보기) : 요청자가 다른 위치에 별도의 GET 요청을 하여 응답을 검색할 경우 서버는 이 코드를 표시합니다.  HEAD 요청 이외의 모든 요청을 다른 위치로 자동으로 전달합니다.

 

4xx : 클라이언트에 오류가 있음을 나타냅니다.

 - 400(잘못된 요청) : 서버가 요청의 구문을 인식하지 못했습니다.

 - 401(권한 없음) : 이 요청은 인증이 필요합니다. 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있습니다.

 - 402(결제 필요) : 아 요청은 결제가 필요합니다.

 - 403(Forbidden, 금지됨) : 서버가 요청을 거부하고 있습니다. (401은 인증 실패, 403은 인가 실패라고 볼 수 있습니다.)

 - 404(Not Found) : 서버가 요청한 페이지(Resource)를 찾을 수 없습니다. 서버에 존재하지 않는 페이지에 대한 요청이 있을 경우 서버는 이 코드를 제공합니다.

 

5xx : 서버가 유효한 요청을 명백하게 수행하지 못했음을 나타냅니다. 

 - 500(내부 서버 오류) : 서버에 오류가 발생하여 요청을 수행할 수 없습니다.

 - 501(구현되지 않음) : 서버에 요청을 수행할 수 있는 기능이 없습니다. 예를 들어 서버가 요청 메서드를 인식하지 못할 때 이 코드를 표시합니다.

 - 502 (Bad Gateway, 불량 게이트웨이) : 서버가 게이트웨이나 프락시 역할을 하고 있거나 또는 업스트림 서버에서 잘못된 응답을 받았습니다.

 - 503(서비스를 사용할 수 없음) : 서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재 서버를 사용할 수 없습니다. > 대개 일시적인 상태를 나타냅니다.

 - 504(게이트웨이 시간초과): 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 제때 요청을 받지 못했습니다.

 - 505(HTTP 버전이 지원되지 않음) : 서버가 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않습니다.

 

[출처] HTTP 상태 코드 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

'DevOps BootCamp > 웹 서비스' 카테고리의 다른 글

DNS 서버 과정  (0) 2023.03.15
웹 서비스 첫 번째 발표  (0) 2023.03.15
웹 서비스 기초  (0) 2023.03.15