What is Http?
HTTP란?
인터넷으로 HTML 문서를 주고 받을 수 있는 규약 또는 규격입니다.
과거에는 HTML 문서만 주고 받을 수 있었다면,
근래에는 HTML 문서가 아닌 TEXT, XML, JSON 같은 형식의 데이터를 주고 받을 수 있도록 범위가 확장되었습니다.
다시 말하면 HTTP는 인터넷으로 데이터를 주고 받을 수 있는 프로토콜입니다.
두 개의 컴퓨터가 있고 하나는 다른 컴퓨터에게 정보를 요청하는 컴퓨터로 '클라이언트' 라고 부르며
또 하나는 다른 컴퓨터에게 정보를 제공하는 컴퓨터로 '서버' 라고 부릅니다.
클라이언트는 URL를 통해 서버에게 정보를 요청하게되고 서버는 요청한 URL로 정보를 응답하게 됩니다.
여기서 요청을 Request 라고 하며, 응답을 Response 라고 합니다.
URL은 서버에 자원, 데이터를 요청하기 위해 입력하는 주소입니다. URL 구조는 아래와 같습니다.
GET: 존재하는 자원에 대한 요청
POST: 새로운 자원을 생성
PUT: 존재하는 자원에 대한 변경
PATCH: 일부의 자원에 대한 변경
DELETE: 존재하는 자원 대한 삭제
이와 같이 데이터에 대한 조회, 생성, 변경, 삭제 동작을 HTTP 요청 메서드로 정의할 수 있습니다.
그 외에도 기타요청 메서드는 다음과 같습니다.
HEAD: 서버 헤더 정보를 획득, GET과 비슷하나 Response Body를 반환하지 않음
OPTIONS: 서버 옵션들을 확인하기 위한 요청. CORS에 사용
URL과 요청 메서드는 클라이언트에서 설정해야한다면 HTTP 상태코드(HTTP Status Code)는 서버에서 설정하는 응답(Response) 정보입니다.
200번대의 상태코드는 대부분 성공을 의미합니다.
200 OK
요청이 성공했으며 성공의 의미는 HTTP 메소드에 따라 달라집니다:
GET: 리소스를 불러와서 메시지 바디에 전송되었습니다.
HEAD: 개체 해더가 메시지 바디에 있습니다.
PUT 또는 POST: 수행 결과에 대한 리소스가 메시지 바디에 전송되었습니다.
TRACE: 메시지 바디는 서버에서 수신한 요청 메시지를 포함하고 있습니다.
201 Created
요청이 성공적이었으며 그 결과로 새로운 리소스가 생성
204 No Content
성공했으나 응답 본문에 데이터가 없음
205 Reset Content
요청을 완수한 이후에 클라이언트에게 이 요청을 보낸 문서 뷰를 리셋 권고
300번대의 상태코드는 대부분 클라이언트가 요청한 주소를 새로운 URL로 리다이렉트하도록 유도하는 경우입니다.
301 Moved Permanently
요청한 리소스의 URI가 변경되었음 권고
304 Not Modified
이것은 캐시를 목적으로 사용, 클라이언트에게 응답이 수정되지 않았음을 알려주고 클라이언트는 계속해서 응답의 캐시된 버전을 사용하라고 권고
400번대 상태코드는 대부분 클라이언트의 코드가 잘못된 경우입니다. 존재하지 않는 자원을 요청했거나 권한이 잘못된 경우 발생합니다.
400 Bad Request
잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음
401 Unauthorized
인증이 실패한 경우
403 Forbidden
자원에 접근 금지
404 Not Found
서버는 요청받은 리소스를 찾을 수 없을 경우
405 Method Not Allowed
서버에서 지원하지 않는 메서드인 경우
415 Unsupported Media Type
요청한 미디어 포맷은 서버에서 지원하지 않음
429 Too Many Requests
지정된 시간에 너무 많은 요청을 보낸 경우
500번대 상태코드는 서버에서 오류가 난 경우입니다.
500 Internal Server Error
서버 내부 오류
501 Not Implemented
요청한 동작에 대해 서버가 지원하지 않아 수행할 수 없음
502 Bad Gateway
서로 다른 프로토콜을 연결해주는 장치가 잘못된 프로토콜을 연결하거나, 어느쪽 프로토콜에 문제가 있어 통신이 제대로 되지 않을 경우 서버가 폭주하는 등의 이유로 과부하되었을 경우, 사용자 브라우저에 이상이 있거나 잘못된 네트워크 연결을 했을 경우 발생
503 Service Unavailable
서버가 과부하 또는 유지 보수로 내려간 경우
504 Gateway Timeout
서버로 요청을 보냈지만 응답지연으로 처리가 불가능한 경우