[CS/NW] HTTPComputer Science/NetWork2024. 1. 15. 18:10
Table of Contents
728x90
반응형
HTTP의 기본적인 개념과 동작 원리에 대해서 알아보자
크게 4가지로 나누어서 볼수 있다.
1. HTTP 기본 개념
HTTP란 Hypertext Transfer Protocol이라는 단어의 약자이다. 말 그대로 직역하자면 문자 통신 규칙이라고 볼수 있다.
서버(서비스 제공자) - 클라이언트(웹 이용자) 사이의 데이터를 주고 받기 위해서 만든 프로토콜(규칙)이다.
2. 클라이언트- 서버 모델
클라이언트 서버 모델이란 네트워크 환경에서 장치들 간의 상호작용을 기반으로하는 아키텍처이다. 자원 공유와 작업 분배에서 뛰어나 분산 시스템에서 잘쓰인다.
장점
- 불특정 다수를 대상으로 하는 서비스에 적합하다.
확장성, 다양한 플랫폼지원 등이 있기 때문이다. - 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 연결 수보다 많은 요청과 응답을 처리할 수 있다.
단점
- 무상태(Stateless)
연결을 항상하고 있는 것이 아닌 작업이 끝나면 연결을 끊기 때문에 클라이언트의 이전 상황을 알 수 없다.
이런 이유로 Cookie같은걸 사용한다.
3. 요청과 음답의 구조
요청 응답 구조란 클라리언트와 서버 간의 통신 패턴을 설명하는 로직이다.
요청과 응답은 위 사진과 같은 방식으로 이루어 진다.
- 헤더
추가적인 메타 데이터 혹은 요청 응답에 대한 부가 정보를 가지고 있다.
클라이언트의 데이터 형식을 나타내는 Accept 헤더 서버 응답을 나타내는 Content_type헤더 등이 있다. - 바디
요청, 응답의 본문이다.
클라이언트는 요청 바디에 데이터를 담아 서버로 전송하고, 서버는 응답 바이데 요청에 대한 결과를 받아 전송한다.
이때 GET, PUT, POST같은 메서드를 통해 통신하게 된다.
4. CRUD 메소드
- GET (SELECT)
정보를 요청하기 위해서 사용한다. - POST (INSERT)
정보를 넣기 위해서 사용한다. - PUT (UPDATE)
정보를 업데이트 하기 위해서 상용한다. - DELETE (DELETE)
정보를 삭제 하기 위해서 사용한다. - HEAD
GET이랑 유사하지만 실제 데이터는 가져오지 않고 헤더 정보만 확인하거나 리소스의 존재 여부를 확인하는데 사용 가능하다. - OPTIONS
웹 서버가 지원하는 메서드 및 기능을 확인하기 위해서 사용한다.
5. 상태 코드의 의미
상태 코드는 클라이언트의 요청에 대한 서버 응답을 간결하게 나타내는 숫자로 3자리수를 가지고 있다. 이를 통해 클라이언트는 어떤 오류가 생긴건지 알수 있다. (XX는 어떤 숫자든 들어갈수 있는 공간이다.)
리소스 : 네트워크를 통해 식별 가능하고 요청할 수 있는 모든 것을 말한다. 문서, 이미지, 데이터 API 엔드포인티, 등 여러가지가 있다
- 1XX (Informational)
클라이언트가 계속해서 요청을 진행해도 좋은지 서버에 알리는데 사용된다. - 2XX (Successful)
200 : OK 요청이 성공적으로 처리되었다.
201 : Created 새로운 리소스가 성공적으로 생성 되었다.
204 : No Content 요청은 성공적이지만 응답할 내용이 없다. - 3XX (Redireaction)
300 : Multiple Choices 리소스에 대해 여러 가지 선택이 가능하다.
301 : Moved Permanetly 리소스가 새로운 위치로 영구적으로 이동되었다.
302 : Found 리소스가 일시적으로 새로운 위치로 이동되었다.
304 : Not Modified : 클라이너트의 캐시가 최신 상태임으로 리소스가 변경되지 않았다. - 4XX (Client Error)
400 Bad Request 요청이 잘못 되었거나 서버가 이를 이해하지 못했다.
401 Unauthorized 요청이 인증되지 않았다.
403 Forbidden 요청의 서버에 의해서 거부되었다.
404 Not Found 요청한 리소스를 찾을 수 없다.
405 Method Not Allowed 지원되지 않는 HTTP 메서드를 사용했다. - 5XX (Server Error)
500 Internal Server Error 서버가 요청을 처리하는 중에 오류가 발생했다.
502 Bad Gateway 게이트웨이나 프록시 서버가 요청을 처리하지 못했다.
503 Service Unavailable 서버가 현제 사용 불가능하며 일시적으로 요청을 처리할 수 없다.
728x90
반응형
'Computer Science > NetWork' 카테고리의 다른 글
[CS/NW] WebBrowser's Cache (0) | 2024.06.20 |
---|
@코딩하는 자연대생 :: 자연대생도 코딩을 하고 싶어
Coding, Software, Computer Science 내가 공부한 것들 잘 이해했는지, 설명할 수 있는지 적는 공간