HTML과 같은 하이퍼미디어 문서를 전송하기 위한 애플리케이션 레이어 프로토콜
클라이언트와 서버 간의 자원 즉 데이터를 교환하기 위한 TCP/IP 기반 통신 프로토콜
- 프로토콜
서로 다른 하드웨어 기기 간의 데이터 통신 규약- TCP
서버와 클라이언트 사이의 통신 연결을 제어하는 트랜스포트 계층의 프로토콜.- IP(Internet Protocol)
패킷들을 가장 효율적인 방법으로 최종 목적지로 전송하기 위해 필요한 프로토콜- TCP/IP
TCP를 기반으로 한(신뢰성 통신을 하는) HTTP,FTP,SMTP 등 수 많은 프로토콜들이 IP 위에서 동작하기에 묶어서 TCP/IP라고 한다.
효율적으로 빠르게(IP) 보내면서 안전하게(TCP) 전달해주려는 목적
=> HTTP를 기반으로 하는 암호화된 프로토콜 HTTPS 등장
클라이언트가 웹 서버에게 요청의 목적이나 종류를 알라는 수단
주요 메서드
속성
HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. 메시지 타입은 두 가지가 있습니다. 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지고, 응답(response)은 요청에 대한 서버의 답변입니다.
시작 줄(start-line)에는 실행되어야 할 요청, 또은 요청 수행에 대한 성공 또는 실패가 기록되어 있습니다. 이 줄은 항상 한 줄로 끝납니다.
옵션으로 HTTP 헤더 세트가 들어갑니다. 여기에는 요청에 대한 설명, 혹은 메시지 본문에 대한 설명이 들어갑니다.
요청에 대한 모든 메타 정보가 전송되었음을 알리는 빈 줄(blank line)이 삽입됩니다.
요청과 관련된 내용(HTML 폼 콘텐츠 등)이 옵션으로 들어가거나, 응답과 관련된 문서(document)가 들어갑니다. 본문의 존재 유무 및 크기는 첫 줄과 HTTP 헤더에 명시됩니다.
HTTP 메시지의 시작 줄과 HTTP 헤더를 묶어서 요청 헤드(head) 라고 부르며, 이와 반대로 HTTP 메시지의 페이로드는 본문(body)이라고 합니다.
HTML 문서 상에서 요소가 배치되는 방식을 결정하는 position 속성은 요소의 정확한 위치 지정을 위해 top, left, bottom, right 속성과 함께 사용됩니다.
static
: 요소를 일반적인 문서 흐름에 따라 배치합니다. defalut값으로 top, left, bottom, right, z-index 속성이 영향을 끼치지 않습니다.
relative
요소를 일반적인 문서 흐름에 따라 배치하고, 자기 자신을 기준으로(상대적으로) top, right, bottom, left의 값에 따라 위치를 적용합니다. 다른 요소에는 영향을 주지 않기 때문에 페이지 레이아웃에서 요소가 차지하는 공간은 static일 때와 같습니다.
absolute
요소를 일반적인 문서 흐름에서 제거하고, 페이지 레이아웃에 공간도 배정하지 않습니다. 가장 가까이에 위치가 지정된 부모요소에 상대적으로 배치하게 되며, 부모요소 중 위치 지정요소가 없다면 초기 컨테이닝 블록을 기준으로 삼습니다.
최종 위치는 top, right, bottom, left 값이 지정합니다.
fixed
브라우저 화면의 특정 부분에 고정되어 움직이지 않는 UI를 구현할 때 사용합니다.
요소를 일반적인 문서 흐름에서 제거하고, 페이지 레이아웃에 공간도 배정하지 않습니다. 뷰포트의 초기 컨테이닝 블록을 기준으로 삼아 배치하며 최종 위치는 위와 같이 top, right, bottom, left 값이 지정합니다.
( 부모 요소 중 하나가 transform, perspective, filter를 하나라도 가지고 있다면 그 부모요소를 뷰포트 대신 컨테이닝 블록으로 삼아 배치합니다. )
sticky
CSS에서 비교적 최근에 추가된 속성 값으로 화면을 스크롤링할 때 효과가 나타납니다.
요소를 일반적인 문서 흐름에 따라 배치하고, 테이블 관련 요소를 포함해 가장 가까운, 스크롤 되는 부모와, 표 관련 요소를 포함한 컨테이닝 블록(가장 가까운 블록 레벨 조상)을 기준으로 top, right, bottom, left의 값에 따라 배치합니다.
( 이 오프셋은 다른 요소에는 영향을 주지 않습니다. )