HTTP는 Hyper Text Transfer Protocol의 두문자어로, 인터넷에서 데이터를 주고받을 수 있는 프로토콜로서 HTML, Text 외에도 모든 형태의 데이터(이미지, 여러 파일, JSON)를 전송할 수 있습니다..
HTTP는 클라이언트가 요청을 보내면 서버에서 결과를 응답하는독립적인 구조
입니다.
또한, HTTP는무상태성
으로 서버가 클라이언트의 상태를 저장하지 않는다는 점입니다. 상태를 저장하지 않기 때문에 서버의확장성이 높다는 장점
이 있습니다.
그리고 비연결성으로 서버와 클라이언트 간의 연결을 유지하지 않는다는 것입니다.HTTP 메세지 4가지 구조를 가지고 있습니다.
첫 번째는 start-line은 시작 라인으로써 해당 메세지가요청인지 응답인지
에 따라 다른 형태로 작성이 됩니다.
두 번째는 header 필드메세지가 0개 이상의 헤더 필드
를 가질수 있으며, 헤더는 메시지에 대한 부가정보를 나타낸다.
세 번째는 공백 라인을 의미하고 네 번째로는 메세지 바디로메시지에서 전달하고자 하는 본문 내용
(html, json, xml 등등)이 작성됩니다.
서버의 확장성이 높다는 장점
이 있다.Statefull
Stateless
최대한 무상태로 서비스를 설계해야 된다
서버가 클라이언트에게 최종적으로 응답을 하고 난 뒤 연결을 끊어진다.
3-way handsahke과정을 통해 연결이 이루어지는데 요청이 잦을수록 이 과정이 빈번하게 수행
된다.계속 연결된 상태를 유지하며 해당 Connectuion을 재 사용함으로써, 성능 향상하는 방법
을 의미한다.적절하게 기준을 통해 연결을 끊어줄 수 있어야 된다
.(입력과 출력 채널 중 한쪽만 끊기, 연결의 지속시간을 설정하기 등)requset-line
과 status-line
으로 나누어지는데 해당 메세지가 요청인지 응답
지에 따라 구분된다.start line = requset-line / status-line
요청 메세지
GET,POST,PUT,DELETE
등이 있다.URL의 형태로 작성되며 대부분의 요청은 절대 경로
를 사용한다.HTTP 버전
을 의미한다.request-line = method SP request-target SP HTTP-version CRLF
응답 메세지
HTTP 버전
을 의미한다.(200, 300, 400, 500 등) 요청에 대한 응답의 결과
를 의미한다.상태 코드에 대한 의미를 설명하는 목적
으로 사용된다.(OK, BAD_REQUEST 등)status-line = HTTP-version SP status-code SP reason-phrase CRLF
요청 메시지, 응답 메시지 구분 없이 동일한 형태
로 작성된다.요청 헤더
응답 헤더
실제 전송하고자 하는 데이터
가 들어가 있다.길이가 0인 경우에도 요청과 응답에 메세지 바디가 포함
되지만, 메세지 바디가 포함되지 않는 경우도 있다.(상태 코드 204,304 등)
position
속성은 웹 문서 안 요소들을 어떻게 배치할 지를 정하는 속성이다.
position 속성을 이용하면 텍스트나 이미지를 원하는 위치로 배치할 수 있고 어떤 방식으로 놓을 지를 결정할 수 있죠.
position의 속성으로로는static
,relative
,absolute
,fixed
,sticky
가 있습니다.
static은 기본값이며 요소를 나열한 순서대로 배치가능합니다.
relative는 주로 부모 요소(이전 요소)에 자엽스럽게 연결하여 위치를 지정합니다.
absoulte는 원하는 위치를 지정해 배치가 가능하며 fixed는 지정한 위치에 고정 배치이고 sticky 속성은 기준점을 이상을 넘지 않을 때는 relative 포지션처럼 동작하다 그 이상을 넘게 될 시에는 fixed 속성과 같이 동작하게 됩니다.