반응형
HTTP란?
hyper text transfer protocol의 약자로 인터넷상에서 데이터를 서로 주고 받을 수 있는 규칙(프로토콜)을 말합니다. 이렇게 규칙에 맞게 프로그램을 개발하기 때문에 서로 정보 교환이 가능한 것입니다. 서버와 클라이언트 모델을 따르는 어플리케이션 레벨의 프로토콜로 TCP/IP(OSI 4계층)에서 동작합니다.
HTTP의 특징
HTTP는 두가지 큰 특징이 있습니다. 바로 stateless 와 connectionless 가 있습니다.
먼저 stateless는 상태가 없는 프로토콜 입니다. 여기서 상태가 없다는 말은 각각의 데이터 요청시 서로 독립적이라는 것을 의미합니다. 즉, 방금 요청한 데이터 통신은 이전의 요청이나 이후의 요청과는 아무런 관련이 없다는 뜻이에요.
다음 connectionless는 연결이 끊어진 프로토콜입니다. 클라이언트에서 서버에 요청을하고 서버가 클라이언트에 응답을 하면 바로 연결을 끊는것을 의미합니다.
- 위와 같은 특성 때문에 쿠키와 세션을 이용해 상태나 연결을 유지합니다.
HTTP의 요청 메소드 (verb)
클라이언트에서 서버에 요청할 때 각각의 동작에 맞는 메소드를 보내야 합니다. 다양한 메소드들이 있지만 일반적으로 자주쓰이는 CRUD 관련 메소드에 대해서만 이야기하겠습니다.
- GET: 저장된 데이터를 가져올 때
- POST: 새로운 데이터를 저장할 때
- PUT: 데이터를 변경할 때
- DELETE: 데이터를 삭제할 때
HTTP의 상태코드
서버가 클라이언트로부터 요청을 받았다면 이제는 서버에서 클라이언트에게 그에 맞는 응답을 보내야 합니다. 요청이 어떻게 처리됐는지 나타내주는 것이 바로 HTTP status code 입니다.
상태코드의 종류는 매우 다양하지만 흔히 개발하는 환경에서 자주 볼 수 있는 것들만 이야기 하겠습니다.
- 200: 요청에 대한 성공
- 400: 클라이언트에서 잘못된 요청을 보냄(Bad Request)
- 401: 접근 권한이 없음(Unauthorized)
- 403: 접근 금지, 요청 거부(Forbidden)
- 404: 요청한 주소(URL) 찾을 수 없음(Not Found)
- 405: 요청한 메소드가 잘못됨(Method Not Allowed)
- 500: 서버 에러(Not Implemented)
반응형
'CS > Network' 카테고리의 다른 글
HTTP와 HTTPS (0) | 2020.10.16 |
---|---|
쿠키와 세션(Cookie / Session) (0) | 2020.10.15 |
프로토콜(Protocol) (0) | 2020.10.14 |
GET vs POST (0) | 2020.10.12 |
OSI 7 계층 (OSI 7 Layer) (0) | 2020.10.07 |