🥗HTTP란?
- "Hypertext Transfer Protocol"의 약자로 인터넷 상에서 데이터를 주고받을 수 있는 프로토콜
- 월드 와이드 웹(WWW)에 내재된 프로토콜
- Hypertext, 비디오, 텍스트 등의 데이터 전송 가능
⭐프로토콜? 규칙이라는 의미, 컴퓨터 네트워크에서 데이터를 보내고 받는 성격에 따라 프로토콜이 만들어짐
🍿동작 방식
1. 서버/클라이언트 모델
- 클라이언트가 서버에게 요청을 보냄
- 서버가 요청을 받아 클라이언트에게 응답을 보냄
2. 무상태(Stateless) 프로토콜
- 서버는 각각의 요청을 독립적으로 처리하고 응답을 반환(클라이언트의 상태 정보 저장 X)
- 서버는 클라이언트를 식별하지 못함
🥓 HTTP의 장단점
1. 장점
- 무상태성을 가져 확장성 ↑, 서버 부담 ↓ (불특정 다수를 대상으로 하는 서비스에 적합)
- 다양한 미디어 타입 지원(텍스트, 이미지, 오디오, 비디오 등...)
- 캐싱 지원으로 반복적인 요청의 처리 속도를 높일 수 있음
2. 단점
- HTTP는 데이터를 평문으로 전송하므로 데이터 보안이 제한됨 (암호화 - HTTPS(느림))
- 무상태성을 가져 정보 유지가 안됨 (쿠키로 해결 가능)
🍵HTTP Method
클라이언트에서 웹 서버에게 어떤 동작을 요청하는지를 나타내는 표준화된 방법으로,
각 Method는 특정한 의미와 목적을 가지며, 서버는 이 Method에 따라 요청을 처리하고 응답을 반환
1. 주요 Method
HTTP Method | |
GET | - 클라이언트가 리소스를 서버로 부터 요청하는데 사용 - 서버의 상태를 변경하지 않는 읽기 전용에 주로 사용 |
POST | - 클라이언트가 서버에게 데이터를 보내 리소스를 생성하거나 업데이트 하도록 요청하는데 사용 - ex ) 폼 데이터 전송, 파일 업로드 등... |
PUT | - 클라이언트가 서버에게 리소스를 전송하여 해당 리소스를 생성하거나 업데이트 하는데 사용 - POST와 다른 점? 똑같이 데이터를 보내지만 PUT은 해당 리소스의 위치를 지정하여 업데이트 |
DELETE | - 클라이언트가 서버에게 리소스의 삭제를 요청 |
PATCH | -클라이언트가 서버에게 리소스의 일부만 수정하도록 요청 - 부분적 업데이트에 유용하게 사용 |
HEAD | - GET과 유사하지만, 실제 데이터를 요청 X 응답 헤더만을 받아옴 - 리소스의 메타 정보나 상태확인에 사용 |
OPTIONS | - 서버가 특정 리소스에 대해 지원하는 HTTP메서드를 확인하기 위해 사용 |
🧃HTTP 상태 코드
웹 서버가 클라이언트에게 보내는 응답의 결과를 나타내는 세자리 숫자이며,
클라이언트와 서버 간의 통신 과정에서 요청 및 응답의 상태를 명확하게 전달하기 위해 사용됨
1. 주요 상태 코드
1xx (Informational):
- 100 Continue: 클라이언트의 요청이 계속 진행될 수 있음을 나타냄
- 101 Switching Protocols: 서버가 프로토콜을 변경함을 나타냄
2xx (Successful):
- 200 OK: 요청이 성공적으로 처리되었음을 나타냄
- 201 Created: 새 리소스가 성공적으로 생성되었음을 나타냄
- 204 No Content: 요청이 성공적으로 처리되었지만 응답 본문이 없음을 나타냄
3xx (Redirection):
- 301 Moved Permanently: 요청한 리소스가 영구적으로 다른 URL로 이동되었음을 나타냄
- 302 Found (or 307 Temporary Redirect): 임시적으로 다른 URL로 리소스가 이동되었음을 나타냄
- 304 Not Modified: 클라이언트의 캐시된 버전을 사용하여 리소스가 변경되지 않음을 나타냄
4xx (Client Error):
- 400 Bad Request: 클라이언트의 요청이 잘못된 구문이나 유효하지 않은 데이터로 인해 실패했음을 나타냄
- 401 Unauthorized: 클라이언트가 인증되지 않았거나 인증이 실패했음을 나타냄
- 403 Forbidden: 클라이언트가 요청한 리소스에 접근할 권한이 없음을 나타냄
- 404 Not Found: 요청한 리소스가 서버에서 찾을 수 없음을 나타냄
5xx (Server Error):
- 500 Internal Server Error: 서버에서 요청을 처리하는 동안 내부 오류가 발생했음을 나타냄
- 502 Bad Gateway: 게이트웨이 서버가 요청을 처리하는 동안 유효하지 않은 응답을 받았음을 나타냄
- 503 Service Unavailable: 서버가 현재 요청을 처리할 수 없는 상태임을 나타냄
- 504 Gateway Timeout: 게이트웨이 서버가 제한 시간 내에 응답을 받지 못했음을 나타냄
🍙Chrome 요청 메세지 확인하기
⭐Chrome의 개발자 도구로 확인 시 HTTP 메시지를 더 쉽게 이해하기 위해 기본정보 등의 정보를 묶어 제공
네이버 카페로 이동 시의 HTTP메세지를 가져와 보았다 !
요청 메세지 Body
⭐크롬 - F12 - Network에서 확인 가능하다
1.시작줄(상태줄)
- 메세지의 첫줄로, 무엇을 요청 및 응답 했는지 나타냄
- HTTP Method, 프로토콜의 버전,상태코드 등으로 구성된다
2.헤더(HEADER)
- 각 헤더의 필드는 쌍점(:)으로 구분되어 이름-값으로 구성
- 헤더는 빈줄로 끝남
3.본문(BODY)
- 빈 줄 다음으로 어떤 종류의 데이터든 들어갈 수 있음
- 요청 - 웹 서버로 데이터를 실어 보냄
- 응답 - 클라이언트로 데이터를 반환
'💻 It' 카테고리의 다른 글
Thread(쓰레드)란? (0) | 2023.09.10 |
---|---|
레거시 코드(Legacy Code)란? (0) | 2023.09.04 |
REST, REST API, RESTful이란? (0) | 2023.08.22 |
OAuth2 란? (0) | 2023.07.27 |
MVC 패턴이란? (Model-View-Controller) (0) | 2023.07.25 |