HTTP
HyperText Transfer Protocol 또는 HyperTexT Protocol의 약자이다. HyperText를 전송하기 위한 프로토콜이다.
서버와 클라이언트의 사이에서 어떻게 메시지를 교환할지를 정해 놓은 규칙이다. 요청(Request)과 응답(Response)으로 구성되어 있으며, 일반적으로 80번 포트를 사용한다. 예를 들면 '클라이언트가 웹 페이지에서 링크가 걸려있는 텍스트를 클릭(요청)하면 링크를 타고 새로운 페이지로 넘어간다(응답)'. 따라서 우리가 사용하는 웹 브라우저에서 인터넷 주소 맨 앞에 들어가는 http://가 바로 이 프로토콜을 사용해서 정보를 교환하겠다는 표시인 것이다.
소켓으로 Http Request(요청) Http Response(응답)을 통해 데이터를 주고받는다. http는 이 요청과 응답을 어떻게 작성해야하는지에 대한 명세서라고 할 수 있다. 식당에서 주문서를 작성해서 서버가 주문서를 받아 클라이언트가 원하는 것을 파악하는것이라고 할 수 있다.
request요청의 첫줄의 구성요소는
http메소드 / url / 버전 이다.
두번째 줄부터는 헤더내용이 온다.
헤더명 : 해더값 으로 여러값들이 온다
헤더들이 나오고 한줄띄고 요청 본문이 나온다.
서버가 브라우저로 보내는 response응답도 세줄로 이루어진다.
첫번째 줄은 상태줄이다.
버전 / 상태코드 / 상태 텍스트
두번째줄부터는 응답메시지 헤더들이다.
헤더명 : 값으로 보내진다.
Content-Type과 Content-Length는 꼭받아야한다. 길이는 보낼 데이터의 바이트 길이이다.
한줄 띄고 세번째 줄부터 본문이 들어온다.
브라우저에서 서버로 소켓을 열어달라고 하고 브라우저는 html코드를 받기위해 대기한다.
클라이언트와 서버거 html을 주고받을 목적으로 하고 이것을 주고받는 약속을 하는 것이 HTTP라고 할 수 있다.
이런 것들을 서버가 직접 작성할 수 있는데 서버프로그램인 WAS, 내가 공부하는 것은 톰캣이 이런 일들을 대신 해준다고 보면된다.
'개념정리' 카테고리의 다른 글
| Path (0) | 2023.04.04 |
|---|---|
| 워크스페이스 에러 (0) | 2023.04.04 |
| Vector Hashtable VS Collections.synchronizedXxx() (0) | 2023.04.04 |
| Map putIfAbsent(), replace() (0) | 2023.03.16 |
| 타입추론 (0) | 2023.03.15 |