1. HTTP 란?
: Hypertext Transfer Protocol의 약자로, 통신 프로토콜.
- WEB에서는 브라우저와 서버 간에 데이터를 주고받기 위한 방식으로 사용됨.
- WEB 상에서 HTML을 서로 주고 받을 수 있도록 만들어진 프로토콜(통신 규약)
"난 이렇게 줄테니, 넌 이렇게 받아" -> 이런식으로 형식을 정해놓은 것
프로토콜이란, 상호 간에 정의한 규칙을 의미하며 특정 기기 간에 데이터를 주고 받기 위해 정의된 규격
2. HTTP 프로토콜 특징
: Stateless (상태가 없는) 프로토콜.
Stateless란, 데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리되는 것.
즉, 이전 요청과 다음 요청이 서로 관련이 없다는 뜻!
일반적으로 TCP/IP 통신 위에서 동작하며 기본 포트는 80번
▪ 장점
1) 서버가 별도의 세션과 같은 추가 정보(진행, 연결 상태의 처리 등)를 관리하지 않아도 됨.
2) 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 성능 상의 이점.
▪ 단점
1) HTTP 요청을 보낼 때 마다, 해당 요청을 처리하기 위해 필요한 모든 데이터를 매번 포함시켜 요청
- 단점을 해결하는 방법?
쿠키(cookie) , 세션(session)등을 사용하여 HTTP 요청을 처리할 때, 필요한 진행 과정이나 데이터 저장.
* 쿠키 (Cookie) ?
: 웹 브라우저가 웹 사이트에서 보내온 정보를 저장할 수 있도록 하는 파일
* 세션 (Session) ?
: 쿠키와 마찬가지로, HTTP 통신 상에서 필요한 데이터를 저장할 수 있게 하는 것.
세션과 쿠키의 차이점.
-> 쿠키는 웹 브라우저 (Client) 측에서 데이터를 저장.
세션은 웹서버에서 데이터를 저장.
3. HTTP 통신 방식 (Request & Response)
: HTTP 프로토콜로 데이터를 주고받기 위해서는 요청(Request)을 보내고, 응답(Response)를 받아야한다.
* Client ?
: 요청을 보내는 쪽. 일반적으로 브라우저를 의미
* Server ?
: 요청을 받는 쪽 (요청 받은 결과값을 Return). 일반적으로 데이터를 보내는 쪽
● HTTP Request (요청)
: HTTP 요청 메세지의 구조. (URL + 요청 메소드)
- Header
: HTTP 요청 그 자체에 대한 정보들.
- Host : 요청이 전송되는 타겟의 호스트 URL
- User-Agent : 요청을 보내는 클라이언트에 대한 정보 (웹 브라우저에 대한 정보)
- Accept : 해당 요청이 받을 수 있는 응답(Response) Body 데이터 타입을 제공
- Connenction : 해당 요청이 끝난 후에, 클라이언트와 서버가 계속해서 네트워크 연결을 유지할 것인지 아닌지에 대한 헤더
- Content-Type : HTTP 요청이 보내는 메세지 Body의 Type
- Content-Length : HTTP 요청이 보내는 메세지 Body의 총 사이즈
+ 헤더와 바디 사이에는 1줄의 공백이 존재. 이를 통해, 헤더의 종료와 바디의 시작을 뜻함.
- Body
: HTTP 요청이 전송하는 데이터를 담고 있는 부분. 전송하는 데이터가 없으면 Body는 비어있게 됨.
(로그인 창에 ID / Password 를 입력하게 전달하고자 할때, Body 부분에 입력 데이터를 포함하여 전송)
● HTTP Respinse (응답)
: HTTP 응답 메세지의 구조.
@ 출처 (참고 사이트)
'[IT] > Network' 카테고리의 다른 글
[Network] IP 클래스(A,B,C class)란? (0) | 2022.07.01 |
---|