-
HTML? HTTP? (+ HTTP의 특징)프로그래밍 지식/Web 2022. 3. 13. 20:00
HTML : Hyper Text Markup Language의 약자로 웹 페이지를 만들기 위한 언어
- Hyper Text : text를 넘어서 링크, 이미지 등 다양한 것들을 표현할 수 있는 것.
- Markup Language : 프로그래밍 랭귀지랑 다르게 (코딩(pro)한 내용을 실행(gram)) 뼈대만 만드는(Markup) 언어
: HTML은 웹 문서의 뼈대를 구성하는 언어.
HTML은...
웹 브라우저 위에서 동작한다.
다양한 tag등의 구성 요소를 이용해 웹 페이지를 작성한다.
웹 서버는 URL에 해당하는 HTML 문서를 전송하는데, HTML 문서를 받은 웹 브라우저는 정해진 규칙에 따라 HTML 문서를 분석하여 알맞은 화면으로 생성한다.
HTML 표준에 따라 HTML 문서로부터 알맞은 화면을 생성하는 과정을 ‘렌더링' 이라고 한다.
HTTP : Hyper Text Transfer Protocol의 약자로 웹 브라우저와 웹 서버가 다양한 데이터를 주고 받을 때 사용하는 일종의 규칙이다. (HTML, 이미지, 동영상, XML 등)
HTTP는 4가지 특징을 가진다.
- 클라이언트 서버 구조
- 무상태 프로토콜(스테이스리스), 비연결성
- HTTP 메시지
- 단순함, 확장 가능
1. 클라이언트 서버 구조
1) 클라이언트는 서버에 요청을 보내고, 응답을 대기
2) 서버가 요청에 대한 결과를 만들어서 응답
2 - 1. 무상태 프로토콜(Stateless)
: 서버가 클라이언트의 상태를 보존하지 않는다.
장점 : 서버 확장성이 높다.
단점 : 클라이언트가 추가 데이터를 전송해야 한다.
예를 들면, 각각의 HTTP 메시지들이 전에 주고 받은 메시지들을 염두하고 보내지지 않는다.
서버1에서 서버2로 바뀌더라도, 아무 상관이 없다. 서버1과 무슨 얘기를 했었는지 상관 없이 이해할 수 있는 이야기이기 때문이다.
그러므로 갑자기 클라이언트 요청이 증가해도 서버를 대거 투입할 수 있고, 무한한 서버 증설이 가능하다.
* Stateless 한계는 쿠키와 서버 세션들을 사용하여 해소한다.
2 - 2. 비 연결성(connectionless)
: HTTP는 기본이 연결을 유지하지 않는 모델이다. HTTP 응답을 받으면 연결을 끊는다.
만약 HTML과 이미지 4개를 받아야 한다면.. ? -> HTML 받고 연결 끊고, 이미지 각각 받고도 연결 끊고 다시 연결하는 구조.
일반적으로 초 단위 이하의 빠른 속도로 응답한다.
1시간 동안 수천명이 서비스르 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개로 적다.
다중 연결 설정으로 병렬 전송 가능
서버 자원을 매우 효율적으로 사용할 수 있다.
비 연결성의 한계 :
1. TCP/IP 연결을 계속 새로 맺어야 한다는 것 - 3 way handshake 시간이 추가됨
2. 웹 브라우저로 사이트를 요청하면 HTML 뿐만 아니라 자바스크립트, css, 추가 이미지 등 수 많은 자원이 함께 다운로드
3. 지금은 HTTP 지속 연결(Persistent Connections)로 문제 해결
** 지속 연결 :
동일 서버의 다수 웹 객체가 하나의 TCP 연결을 통해 클라이언트에게 전송하도록 TCP 연결 유지
일정 시간 동안 사용하지 않으면 TCP 연결 해제
다수의 객체를 한거번에 요청하고 응답하는 파이프라이닝 적용 가능
3. HTTP 메시지
HTTP는 크게 다음과 같이 두 가지 관점에서 규칙을 정의하고 있다.
- 요청 규칙 : 웹 브라우저가 웹 서버에 HTML과 같은 것을 요청할 때 사용할 데이터 구성 규칙
- 응답 규칙 : 웹 서버가 웹 브라우저에 HTML과 같은 것을 전송할 때 사용할 데이터 구성 규칙
HTTP 메시지 구조
구성 요소 요청 메시지 응답 메시지 시작 라인 HTTP 메서드, 요청 대상, HTTP Version HTTP Version, HTTP 상태 코드, 이유 문구 헤더 호스트 이름 메시지 바디의 내용, 크기, 압축, 인증, 요청 클라이언트(브라우저) 정보, 서버 앱 정보, 캐시 관리 정보 등 .. 몸체 실제 전송할 데이터 4. 단순함. 확장 가능
HTTP는 단순하다.
크게 성공하는 표준 기술은 단순하지만 확장 가능한 기술이다.
참조한 사이트
HTTP와 네트워크 간단정리
: 인터넷 네트워크, 혹은 웹이라는 기술에서 쓰이는 용어인데 정보를 주거나 받기 위해서 지켜야 할 규칙 (약속)프로토콜이 맞는 예 req) 번호좀 알려주세요 res) 010 - 1234 - 5678프로토콜이 맞지 않
velog.io
[Network] HTTP - 원리와 지속,비지속 연결
웹 페이지들의 저장소와 요청 처리 소프트웨어기본 객체와 참조 객체들로 구성기본 객체: HTML file, 페이지 내의 다른 객체를 URL(하이퍼 링크)로 참조참조 객체: HTML file,JPEF image,audio file... 서로 다
velog.io
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런...
www.inflearn.com
'프로그래밍 지식 > Web' 카테고리의 다른 글
React component names must start with an uppercase letter react-hooks/rules-of-hooks (0) 2022.08.01 '얄팍한 코딩사전 - 아파치, NginX, 톰캣이 뭔가요?' 요약 (0) 2022.03.09