[Network] HTTP

Seokkitdo·2022년 1월 7일
0

Network

목록 보기
1/2
post-thumbnail

HyperText Transfer Protocol

HTTP 는 html과 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다.
프로토콜이란 협약, 통신, 규약 등을 의미하는데, 쉽게 말해 리소스들을 가져올 때 어떤 방식으로 필요한 리소스들을 가져올지 정하는 협약이라고 보시면 될 것 같습니다.

1. HTTP 의 2가지 특징

Request / Response

클라이언트와 서버간의 통신은 요청(Request)응답(Response)을 통해 이루어집니다.
ex)
1. 브라우저가 HTML 파일을 요청합니다. 서버는 HTML 파일을 반환합니다.
2. 브라우저가 스타일 시트를 요청합니다. 서버는 CSS 파일을 반환합니다.
3. 브라우저에서 JPG 이미지를 요청합니다. 서버는 JPG 파일을 반환합니다.
4. 브라우저가 JavaScript 파일을 요청합니다. 서버는 JavaScript 파일을 반환합니다.
5. 브라우저가 데이터를 요청합니다. 서버는 데이터(xml, json)를 반환합니다.

Stateless & Connectionless

각각의 HTTP 통신은 비연결적인 특성으로 연결이 해제됨과 동시에 서버는 클라이언트가 이전에 요청한 결과에 대해서 잊게됩니다. 만약 클라이언트가 이전 요청과 같은 대답을 원한다 하더라도 다시 한번 동일한 요청을 보내야만 합니다.

여러 번의 통신 과정에서 연속된 데이터 처리가 필요한 경우를 위해 로그인 토큰 또는 브라우저의 쿠키, 세션, 로컬 스토리지와 같은 기술이 필요에 의해 만들어졌습니다.

HTTP는 위와 같은 특징으로 인해 'Stateless Protocol' 이라고 부르며, 각각의 통신은 독립적으로 처리됨에 따라 단순하고, 서버에 부담을 줄일 수 있습니다.

2. HTTP - request 메소드

GET : 리소스를 검색하고, 반환받기 위해 사용되는 메소드로, 원하는 정보를 서버에 요청할 때 쓰입니다. 일반적으로 URL에서 쿼리를 통해 보내기 때문에 RequestBody가 없습니다.

POST : 요청된 자원을 생성하기 위한 메소드.

PUT : 요청된 자원을 수정하기 위해 사용되는 메소드

DELETE : 요청된 자원을 삭제하기 위해 사용되는 메소드

3. HTTP - response status

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

  • 200 - 서버가 요청을 제대로 처리했다는 의미이며 주로 요청한 페이지를 제공했을 때 사용
  • 201 - 성공적으로 요청되었으며 서버가 새 리소스를 작성
  • 202 - 서버가 요청을 접수했지만 아직 처리하지 않았을 경우

4xx (실패) : 이 클래스의 상태 코드는 클라이언트에 오류가 있음을 나타낸다.

  • 400(잘못된 요청) - 서버가 요청의 구문을 인식하지 못했을 경우
  • 401(권한 없음) - 인증이 필요한 요청으로, 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있습니다.
  • 402(결제 필요) - 결제가 필요한 리소스에 결제 없이 접근했을 경우

5xx (서버오류) : 서버가 유효한 요청을 명백하게 수행하지 못했음을 나타낸다.

  • 500(내부 서버 오류) - 서버에 오류가 발생하여 요청을 수행할 수 없는 경우
  • 501(구현되지 않음) - 서버에 요청을 수행할 기능이 없을 경우로, 서버가 요청 메소드를 인식하지 못할 때 이 코드를 표시
profile
어제보다 성장해 나가고 싶은 개발자

0개의 댓글