CS/network

HTTP(Hyper Text Transfer Protocol)

superbono 2021. 7. 24. 14:37

https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

* HTTP(Hyper Text Transfer Protocol)

HTTP는 웹 상에서 정보를 주고받을 수 있는 프로토콜이다. 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들어 클라이언트(웹 브라우저)가 HTTP를 통하여 서버에게 웹페이지(HTML)을 요청하면 서버는 요청에 응답하여 필요한 정보를 클라이언트에게 전달한다. 주로 TCP를 사용한다. 

클라이언트는 서버에게 요청 메시지를 전달하며 서버는 응답 메시지를 보낸다. 

클라이언트가 서버에게 보내는 요청 메시지는 다음과 같다. 

  • 요청 내용

     보기) GET /images/logo.gif HTTP/1.1

  • 헤더

     보기) Accept-Language: en

HTTP 메소드 요약

HTTP 메소드에 대해서는 따로 포스팅을 한 적이 있다 (여기)

HTTP 메소드 RFC 요청에 Body가 있음 응답에 Body가 있음 멱등성 캐시 가능
TRACE RFC 7231 아니요 아니요
PUT RFC 7231 아니요
POST RFC 7231 아니요
PATCH RFC 5789 아니요
OPTIONS RFC 7231 선택 사항 아니요
HEAD RFC 7231 아니요 아니요
GET RFC 7231 아니요
DELETE RFC 7231 아니요 아니요
CONNECT RFC 7231 아니요 아니요

 

HTTP Status 코드

100번대 코드(1xx) - 정보: 요청을 받았으며 프로세스를 계속하여 진행한다. 

200번대 코드(2xx) - 성공: 요청을 성공적으로 받았으며 인식했고 수용했다.

300번대 코드(3xx) - 리다이렉션: 요청 완료를 위해 추가 작업 조치가 필요하다.

400번대 코드(4xx) - 클라이언트 오류: 요청의 문법이 잘못되었거나 요청을 처리할 수 없다. 

500번대코드(5xx) - 서버 오류: 서버가 명백히 유효한 요청에 대해 충족을 실패하였다. 

 

-상세 내용-

1XX: Information responses (정보)

서버가 요청을 받았으며 서버에 요청을 보낸(연결된) 클라이언트는 프로세스를 계속하여 진행한다.

100 continue: 진행 중임을 나타내는 응답 코드. 현재까지의 진행상태에 문제가 없고 나머지 요청 정보를 계속 보내주길 바람

101 Switching Protocol: 서버는 클라이언트가 요청하는 대로 upgrade 헤더를 따라 다른 프로토콜로 변경할 것이다. 

 

2XX Success responses(성공) : 데이터 전송이 성공적으로 이루어졌거나, 이해되었거나, 수락되었음

200 OK: 오류 없고 전송이 성공하였다.

202 Accepted: 서버가 클라이언트의 요청을 수락하였다. 

203 Non-authoritavive Information: 서버가 클라이언트의 요청을 중 일부만 전송하였다. 

204 Non Content: 서버는 클라이언트의 요청을 처리하였으나 전송할 데이터가 없다.

 

3XX Redirection reponses: 자료의 위치가 바뀌었다.

솔직히 300대 에러는 자주 못본 것 같다. 어쨋든

300 Multiple Choices: 최근에 옮겨진 데이터를 요청함

 

4XX Client Error(클라이언트 오류): 클라이언트 측의 오류이다. 클라이언트가 주소를 잘못 입력하였거나 요청이 잘못 되었음을 나타낸다.

400 Bad Request: 요청 실패. 문법상에 오류가 있어서 서버가 클라이언트의 요청사항을 이해하지 못했다.

401 Unauthorized: 권한 없음

403 Forbidden 금지: 수행 접근 금지, 읽기 접근 금지, ip 주소 거부됨 등 클라이언트가 해당 요청에 접근이 금지되어있음을 나타내는 상태 코드

404 Not Found 문서를 찾을 수 없다. 서버는 클라이언트가 요청한 파일이나 스크립트를 찾지 못했음을 나타냄

405 Method not allowed 메소드가 허용되지 않는 요청을 했을 때. 요청 내용에 명시된 메소드를 수행하기 위해 해당 자원의 이용이 허용되지 않는다. 예를 들어서 get을 post로 요청한 경우

 

5XX Server Error(서버 오류): 서버 측의 오류로 올바른 요청을 처리할 수 없음.

500 Internal Server Error: 서버 내부 오류

502 Bad gateway: 게이트웨이 상태 나쁨

503 Service Unavailable: 외부 서비스가 다운되었거나 현재 멈춘 상태 또는 이용할 수 없는 서비스일 때

505 HTTP Version Not Supported: 해당 HTTP 버전을 지원하지 않는다.

'CS > network' 카테고리의 다른 글

HTTP 요청 Method  (0) 2021.07.13
Network Layer의 Protocols  (0) 2021.06.23
슬라이딩 윈도우 프로토콜  (0) 2021.05.11
Load Balancing(로드 밸런싱)  (0) 2021.05.09
URI와 URL, URN  (0) 2021.05.08