HTTP(Hyper Text Transfer Protocol)
인터넷에서 데이터를 주고받을 수 있는 프로토콜
프로토콜은 규칙이라 생각하면 된다.
HTTP의 동작
클라이언트 즉, 사용자가 브라우저를 통해 어떠한 서비스를 요청(request)하면 서버에서는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(response)하는 형태로 동작한다.
HTTP의 특징
⦁ 클라이언트-서버 모델을 따른다.
⦁ TCP/IP를 이용하는 응용 프로토콜이다.
⦁ 비연결형 지향 : 클라이언트가 서버에게 리소스를 요청한 후 응답을 받으면 연결을 바로 끊어버린다.
⦁ 무상태성 : 각각의 요청은 독립적이다.
Request Method(요청의 종류)
클라이언트가 서버에 요청방법을 정의하는 것이다.
⦁ GET : 서버에게 조회할 리소스를 요청한다. (READ, 조회)
⦁ POST : 서버에게 본문(body)에 생성할 데이터를 삽입하여 전송한다. (CREATE, 생성)
⦁ PUT : 서버에게 본문에 수정할 데이터를 삽입하여 전송한다. (UPDATE, 수정)
⦁ DELETE : 서버에게 삭제할 리소스를 요청한다. (DELETE, 삭제)
⦁ PATCH : PUT과 비슷하지만 일부만 수정한다는 점에서 다르다.
▶ 요청 HTTP 메시지 예시
GET https://powerdev.tistory.com/ HTTP/1.1 // 시작줄
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... // 헤더
Upgrade-Insecure-Requests: 1 // 본문
1. 시작줄
⦁ GET : Request Method
⦁ https://powerdev.tistory.com/ : 사이트 주소
⦁ HTTP/1.1 : HTTP 버전
2. 헤더
요청에 대한 정보를 담는다.
3. 본문
요청 할 때 함께 보낼 데이터를 담는 부분
Response Status Code(응답 상태코드)
서버가 클라이언트에게 요청을 받으면 응답상태에 따라서 다른 상태코드를 클라이언트에게 돌려준다.
⦁ 1xx (요청에 대한 정보) : 요청을 받았으면 작업을 계속한다.
⦁ 2xx (성공) : 요청을 성공적으로 수행했다. / 200(성공), 201(새 리소스 작성), 202(요청 접수, 아직처리 안함)
⦁ 3xx (리다이렉션) : 클라이언트가 요청을 마치기 위해 추가적인 동작을 취해야 한다.
⦁ 4xx (클라이언트 오류) : 클라이언트에 오류가 있다. / 401(권한 없음), 404(찾을 수 없음, 서버에 없는 페이지)
⦁ 5xx (서버 오류) : 서버에 오류가 있다. / 500(내부 서버 오류)
▶ 응답 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...
1. 시작줄
버전 상태코드 상태메시지로 구성되어 있다. 200은 성공적인 요청이었다는 뜻
2. 헤더
응답에 대한 정보를 담는다.
3. 본문
요청한 데이터를 담아서 보내준다.
참고문서
https://www.zerocho.com/category/HTTP/post/5b344f3af94472001b17f2da
https://developer.mozilla.org/ko/docs/Learn/Common_questions/How_does_the_Internet_work