HTTP (HyperText Transfer Protocol)
텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜
ex) 클라이언트 프로그램에서 사용자가 회원가입을 시도하게 되면, 서버로 회원정보를 보내게 되고 서버는 회원 정보를 저장
과정
→ 기본적으로 연결을 유지하지 않음
참조) https://aws-hyoh.tistory.com/entry/TCPIP-쉽게-이해하기
데이터의 전송을 제어하는 프로토콜
인터넷 프로토콜
GET | 서버로부터 리소스(데이터)를 요청 |
---|---|
POST | 서버에 새로운 데이터를 전송 or 리소스를 생성 |
PUT | 서버에 데이터를 업데이트하거나 리소스를 생성 or 교체 |
DELETE | 서버에서 데이터를 삭제 |
PATCH | 서버의 데이터 일부를 수정 |
Request HTTP 메시지 예시
GET https://velog.io/@shim123 HTTP/1.1 // 시작줄
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... // 헤더
Upgrade-Insecure-Requests: 1
GET https://velog.io/@shim123 HTTP/1.1
첫 줄은 시작줄로 메서드 구조 버전으로 구성
GET
→ HTTP Methodhttps://velog.io/@shim123
→ 사이트 주소HTTP/1.1
→ HTTP 버전두번째 줄부터는 헤더이며 요청에 대한 정보
User-Agent
, Upgrade-Insecure-Requests
등등이 헤더에 해당되며 헤더의 종류는 매우 많음
본문은 요청을 할 때 함께 보낼 데이터를 담는 부분
+ 예시에는 단순히 주소로만 요청을 보내고 있고 따로 데이터를 담아 보내지 않기 때문에 본문이 비어 있음
Status Code (상태 코드)
굉장히 많은 종류가 있지만 크게 5 부류로 나눌 수 있음
1XX (조건부 응답) | 요청을 받았으며 작업을 계속한다 |
---|---|
2XX (성공) | 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킨다. |
3XX (리다이렉션 완료) | 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다. |
4XX (요청 오류) | 클라이언트에 오류가 있음을 나타낸다. |
5XX (서버 오류) | 서버가 유효한 요청을 명백하게 수행하지 못했음을 나타낸다. |
Resonse HTTP 메시지 예시
HTTP/1.1 200 OK // 시작줄
Connection: keep-alive // 헤더
Content-Encoding: gzip
Content-Length: 35653
Content-Type: text/html;
<!DOCTYPE html><html lang="ko" data-reactroot=""><head><title...
첫 줄은 버전 상태코드 상태메시지로 구성되어 있음
+ 200은 성공적인 요청이었다는 뜻
두 번째 줄부터는 헤더로 응답에 대한 정보를 담고 있음
응답에는 대부분의 경우 본문이 있음
/+ 보통 데이터를 요청하고 응답 메시지에는 요청한 데이터를 담아서 보내준다. 응답 메시지에 HTML이 담겨 있는데 이 HTML을 받아 브라우저가 화면에 렌더링함
키-값 쌍의 형태로 데이터를 전송
웹 폼 데이터를 전송하기 위한 형식
-파일 업로드나 폼 데이터 전송에 사용
가벼운 데이터 교환 형식으로, 사람과 기계 모두 이해하기 쉬운 형태
API에서 데이터를 전송하고 수신하는 데 사용
마크업 언어로 데이터를 표현하기 위한 형식
데이터를 구조화하고 문서를 교환하는 데 사용
HTTP(Hypertext Transfer Protocol)
HTTPS(Hypertext Transfer Protocol Secure)
ㄴ> HTTP의 확장 버전, 더 안전한 버전
→ 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 설정
참조)
https://velog.io/@surim014/HTTP란-무엇인가
https://www.zerocho.com/category/HTTP/HTTP란 무엇인가