Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- SSAFY
- 싸피
- 다익스트라
- floyd-warshall
- 웹 호스팅
- 호스팅
- 플로이드 와샬
- 플로이드 워셜
- 싸피 합격
- 뮤텍스
- 세마포어
- Dijkstra Algorithm
- 클라우드 서버
- 세마포어와 뮤텍스
- 프록시서버
- Proxy
- 최단 경로
- Proxy Server
- 삼성 청년 SW 아카데미
- 싸피 면접 후기
- 다익스트라 알고리즘
- 호스팅이란?
- 프록시
- 뮤텍스란?
- 세마포어와 뮤텍스의 차이
- 서버 호스팅
- 세마포어란?
- Synchronization
- 동기화
Archives
- Today
- Total
어제의 나보다 성장한 오늘의 나
HTTP란? 본문
HTTP란?
- HTTP는 Hyper Text Transfer Protocol로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다.
- 프로토콜은 규칙이라고 생각하면 된다. 그렇기 때문에 모든 프로그램은 이 규칙에 맞춰 개발해서 서로 정보를 교환할 수 있게 된 것이다.
- 추가적인 설명으로 인터넷이라는 거대한 통신망을 통해 원하는 정보(데이터)를 주고받는 기능을 이용하는 응용 프로토콜이며, 사용하는 포트 번호는 기본적으로 80이다.
HTTP 특징
- 클라이언트와 서버들은 개별적인 메시지 교환을 통해 통신한다. 보통 브라우저인 클라이언트에 의해 전송되는 메시지를 요청(requests)이라고 부르며, 그에 대해 서버에서 응답으로 전송되는 메시지를 응답(responses)이라고 부른다.
- 우리가 보고, 듣는 형식으로 웹페이지에 표시하기 위해, 브라우저는 페이지의 HTML 문서를 가져오기 위해 요청 -> 파일을 구문 분석하여 실행해야 할 스크립트 그리고 페이지 내 포함된 하위 리소스들(이미지, 비디오 등)을 잘 표시하기 위한 레이아웃 정보(CSS)에 대응하는 추가적인 요청들을 가져온다. 이 과정을 렌더링이라고 불리는 소프트웨어를 사용한다.
- 요청과 응답으로 인해 심플하고 전산 자원이 적게 든다는 장점이 있다.
- 연결이 지속적이지 않기에 Web-Client와 연결이 종료 후 추가적인 요청 시 어떤 Web-Client인지 모른다는 단점이 있다.
- 즉 다수의 Web-Client가 요청 시 각각의 Web-Client 요청을 구분할 수가 없다. -> HTTP는 연결 상태를 유지하지 않는 비연결성 프로토콜이다. ( HTTP와 반대로 연결 상태를 유지하는 프로토콜 FTP, Telnet이 있다 )
- 이러한 단점을 해소하기 위한 방법으로 Cookie, Session, URL Rewriting 등이 있다.
웹 프론트 엔드
- 사용자에게 웹을 통해 다양한 콘텐츠 (문서, 동영상, 사진등)을 제공한다.
- 또한 사용자의 요청(요구사항)에 반응해서 동작한다.
URL (Uniform Resource Locator)
- 인터넷 상의 자원의 위치
- 특정 웹 서버의 특정파일에 접근하기 위한 경로 혹은 주소
HTTP 흐름
1. TCP 연결을 한다. TCP 연결은 요청을 보내거나(혹은 여러 개의 요청) 응답을 받는 데 사용한다.
2. HTTP 메시지를 전송한다.
- GET / HTTP/1.1 : 브라우저가 서버에게 "/"에 위치한 문서를 HTTP/1.1 protocol로 달라는 의미
- Host : HTTP/1.1 protocol에서만 필수이며, 의미하는 바는 다양한 도메인을 가지고 있을 수 있는 ex) google.co.kr, google.co.uk etc.. 서버에게 google.com이라는 특정한 host를 요청하는 것.
- Accept : Optional header, 브라우저가 서버에게 어떤 응답도 받아들이겠다는 뜻. 서버가 JSON, XML, 또는 HTML 포맷을 다 가지고 있어도 아무거나 보내도 상관없다는 뜻.
3. 서버에 의해 전송된 응답을 읽어 드린다.
Status Code (상태 코드)
상태 코드는 모두 숫자 세 자리로 이루어져 있으며, 아래와 같이 크게 다섯 부류로 나눌 수 있다.
- 1XX (조건부 응답) : 요청을 받았으며 작업을 계속한다.
- 2XX (성공) : 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킨다.
- 3XX (리다이렉션 완료) : 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.
- 4XX (요청 오류) : 클라이언트에 오류가 있음을 나타낸다.
- 5XX (서버 오류) : 서버가 유효한 요청을 명백하게 수행하지 못했음을 나타낸다.
Headers
응답에는 대부분의 경우 본문이 있다. 보통 데이터를 요청하고 응답 메시지에는 요청한 데이터를 담아서 보내주기 때문이다. 응답 메시지에 HTML이 담겨 있는데 이 HTML을 받아 브라우저가 화면에 렌더링 한다.
4. 마지막으로 연결을 닫거나 다른 요청들을 위해 재사용한다.
출처
'CS > 네트워크' 카테고리의 다른 글
[네트워크] REST, REST API, RESTful (0) | 2021.06.04 |
---|---|
유니캐스트, 멀티캐스트, 브로드캐스트 (0) | 2021.04.09 |
로드 밸런싱 (0) | 2021.04.08 |
TCP/IP 4계층 (0) | 2021.04.07 |
OSI 7계층 (0) | 2021.04.07 |
Comments