728x90
HTTP란?
데이터를 주고 받는 양식을 정의한 통신 규약
브라우저는 서버에게 자신이 원하는 페이지 (URL 등의 정보) 를 요구(Request)합니다.
서버는 브라우저가 원하는 페이지가 있는지 확인하고 있다면 해당 페이지에 대한 데이터를 반환(Response)해줍니다.
없다면 없는 페이지에 대한 데이터를 반환합니다.
개발자 도구의 Network 탭에서 HTTP status 및 기타 정보 확인 가능
Method
GET : 리소스를 얻을 때
POST : 웹 서버에 데이터를 게시할 때
Header : 추가 데이터, 메타 데이터
브라우저가 어떤 페이지를 원하는지
요청 받은 페이지를 찾았는지
성공적으로 찾았는지
Payload : 실질적인 데이터
GET 메서드를 제외하고는 모두 Payload를 보낼 수 있다
HTTP 특징
- 단방향성
- 서버가 먼저 응답을 보낼 수 없고 클라이언트가 요청을 보내야만 응답할 수 있다. (2버전 이전)
- 비연결성(connectionless)
- 클라이언트의 요청으로 서버와 연결된 후, 요청에 대한 응답의 데이터를 전송하면 연결을 종료한다.
- 따라서, 실시간 통신을 할 수 없다. > 웹소켓 이용
- 문제점
- HTTP는 평문 통신이기 때문에 도청이 가능하다.
- 통신 상대가 검증된 상대인지 확인하지 않기 때문에 위장이 가능하다.
- 완전성을 증명할 수 없기 때문에 변조가 가능하다.
- 이러한 문제점을 해결하기 위해 HTTPS가 등장한다.
HTTP 통신 흐름
📌 브라우저에 www.naver.com을 치면 어떤일이 일어나나요?
- 웹 브라우저에 www.naver.com 입력.
- 사용자가 입력한 URL 주소 중 도메인 네임 부분을 DNS 서버에 검색하고, DNS서버에서 해당 도메인 네임에 해당하는 IP주소를 찾아온다.
- HTTP 프로토콜을 사용하여 페이지 URL정보와 찾아온 IP주소를 포함하는 HTTP 요청 메세지를 생성하고, 생성된 HTTP 요청 메세지는 TCP/IP 프로토콜을 사용하여 인터넷 망을 통해 해당 IP주소의 컴퓨터로 전송된다.
- HTTP 요청 메세지를 받은 컴퓨터(서버)는 웹 페이지 URL 정보 중 PATH(경로) 와 HTTP Method(동작)에 맞는 액션을 취한다. (여기서는 naver 페이지를 띄우기 위해 필요한 html 등의 리소스를 찾을 것이다.)
- 생성된 응답 데이터는 또 다시 HTTP 프로토콜을 사용하여 HTTP 응답 메세지로 만들어지고 TCP/IP 프로토콜을 사용하여 인터넷 망을 통해 요청했던 컴퓨터(클라이언트)로 전송된다.
- 도착한 HTTP 응답 메세지는 웹 브라우저에 의해 브라우저 렌더링 과정을 거쳐 화면에 출력되어 사용자가 볼 수 있게 된다.
HTTP CODE
100 - 199
정보 제공용 상태 코드
200 - 299
성공 코드
200 OK
201 Created
202 승인됨
204 콘텐츠 없음 (삭제 완료) - 메시지를 포함하지 않는다! 빈 라인으로 반환
참고자료 : https://restfulapi.net/http-status-204-no-content/
400 - 499
클라이언트 오류 코드
404 Not Found 찾을 수 없음 : 클라이언트 URL이 잘못된 경우
500 - 599
서버 오류 코드
500 내부 서버 오류
스파르타 코딩클럼 Computer Science 자료
'학습 내용 정리 > 기본' 카테고리의 다른 글
프론트 엔드 백엔드란? (0) | 2023.06.17 |
---|---|
코딩 용어 (0) | 2023.06.11 |
[중요!] 의사 전달 코드 (0) | 2023.05.23 |
크롬의 개발자 도구, 디버깅 (1) | 2023.05.16 |
REST API (1) | 2023.05.12 |