웹과 인터넷

seul_velog·2021년 11월 11일
0

WEB

목록 보기
1/4

📍 WEB과 INTERNET

인터넷은 1960년대에 시작되었고, 웹은 1990년대에 시작되었다.
웹은 인터넷이라는 거대한 망 안에 포함된 작은 영역이며, 인터넷으로 연결된 세계 속에서 웹을 통해 정보를 주고받을 수 있다.

Web

: Web은 World Wide Web의 약자로 인터넷이라는 서비스 체계 위에서 동작하는 서비스 중 하나이다. 사용자들이 서로의 정보를 공유할 수 있는 공간이며, 간단히 줄여서 www나 w3라고 부르며, 일상적으로 웹(web)이라고 불린다.

Internet

: Internet은 '여러 통신망을 하나로 연결'한다는 의미 "Inter Network"라는 말에서 시작되었으며, 전 세계 컴퓨터들을 하나로 연결하는 거대란 컴퓨터 통신망을 의미한다. 이러한 네트워크 체계 위에서 동작하는 서비스로 WEB, FTP(File Transfer Protocol), EMAIL 등이 있다.



📍 HTTP에 대해

HTTP(HyperText Transfer Protocol)

컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식 또는 약속

: www상에서 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 우리가 흔히 웹브라우저 주소창에 입력하는 웹 주소인 URL을 통해 요청과 응답이 이루어진다.
예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지(HTML)나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다.

프로토콜(Protocol)

: 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계 (일종이 약속)이다. 통신 프로토콜은 컴퓨터 상호 접속이나 전달 방식, 통신 방식, 주고받을 자료의 형식, 오류 검출 방식, 코드 변환 방식, 전송 속도 등을 정하는 것을 말한다. 기종이 다른 컴퓨터는 대개 서로 다른 통신 규약을 사용하기 때문에, 이(異)기종 컴퓨터들끼리 통신을 하려면 표준 프로토콜을 설정하고, 커뮤니케이션을 하는 모든 컴퓨터가 이를 채택토록 하는 것을 전제로 통신망을 구축해야 한다. 이러한 통신 프로토콜 가운데 인터넷에서 사용하는 대표적인 표준 프로토콜이 바로 TCP/IP(Transfer Control Protocol/Internet Protocol)이다.


HTTP의 두가지 특징

Request / Response (요청 / 응답)

  • HTTP 통신의 핵심은 요청과 응답이다.

Stateless

  • State(상태) + less(없음)을 의미한다. 각각의 HTTP통신 (요청/응답)은 독립적이므로 과거의 통신(요청/응답)에 대한 내용을 전혀 알지 못 한다.



HTTP의 역사

1. HTTP/0.9 - 원-라인 프로토콜

  • HTTP 초기 버전에는 버전 번호가 없었지만, 이후에 차후 버전과 구별하기 위해 0.9로 불리게 됐다.
  • HTTP/0.9는 극히 단순한 구성으로 이루어져 요청가능한 메서드는 GET 이 유일했고, HTTP 헤더가 없었는데 이는 HTML 파일만 전송될 수 있으며 다른 유형의 문서는 전송될 수 없음을 의미한다.
  • HTTP/0.9는 매우 제한적이었으며 브라우저와 서버 모두 좀 더 융통성을 가지도록 빠르게 확장되었다.

2. HTTP/1.0 - 확장성 만들기

  • 버전 정보가 각 요청 사이내로 전송되기 시작했다. (HTTP/1.0 이 GET 라인에 붙은 형태로)
  • 상태 코드 라인 또한 응답의 시작 부분에 붙어 전송되어, 브라우저가 요청에 대한 성공과 실패를 알 수 있고 그 결과에 대한 동작(특정 방법으로 그것의 로컬 캐시를 갱신하거나 사용하는 것과 같은)을 할 수 있게 되었다.
  • HTTP 헤더 개념은 요청과 응답 모두를 위해 도입되어, 메타데이터 전송을 허용하고 프로토콜을 극도로 유연하고 확장 가능하도록 만들어주었다.
  • Content-Type 의 추가는 HTML 외에 다른 문서들도 전송 가능하게 하였다.

3. HTTP/1.1 - 표준 프로토콜

HTTP의 표준 프로토콜로써, 모호함을 명확하게 하고 많은 개선 사항들을 도입했다.

  • Connection(통신로)을 재사용될 수 있게 하여, 탐색된 단일 원본 문서 내로 임베드된 리소스들을 디스플레이하기 위해 사용된 커넥션을 다시 열어 시간을 절약했다.
  • multiple request에 대한 처리가 가능하고 request/response가 파이프라인 방식으로 진행이 가능하다.
    Pipelining이 적용되면 하나의 Connection으로 다수의 Request와 Response를 처리할 수 있게되어, 네트워크 지연(Network Latency)을 줄일 수 있다.
  • Host 헤더 덕분에, 동일 IP 주소에 다른 도메인을 호스트하는 기능이 서버 코로케이션을 가능하게 했다.

4. HTTP/2 - 더 나은 성능을 위한 프로토콜

  • HTTP/2(Hypertext Transfer Protocol Version 2)는 월드 와이드 웹에서 쓰이는 HTTP 프로토콜의 두 번째 버전이다. SPDY(웹 콘텐츠를 전송할 목적으로 구글이 개발한 비표준 개방형 네트워크 프로토콜)에 기반하고 있으며, 국제 인터넷 표준화 기구(IETF)에서 개발되고 있다.

  • http/2 버전은 멀티 플랙싱기능으로 단일 TCP 연결을 통해 (Persistent Connection in Http1.x) 다수의 http 요청과 응답(http pipelining in http 1.1)이 클라이언트와 서버 사이에 응답 지연(Hol : Header of line blocking)없이 stream 형태로 주고 받을 수 있는 기술적 토대를 만들게 되었다. 따라서 Http/2를 사용한다면 지속연결(Persistent Connection)에 대해 고민할 필요가 없어지게 된다.




📍 GET & POST

GET과 POST는 HTTP 프로토콜을 이용해서 사용자 입력 데이터를 서버에 전달하는 방식을 나타내며 HTTP request method라 한다.

GET

  • GET 방식은 전송 URL에 입력 데이터를 쿼리스트링으로 보내는 방식이다.
  • 전송 URL 바로 뒤에 ‘?’를 통해 데이터의 시작을 알려주고, key-value형태의 데이터를 추가한다. 1개 이상의 전송 데이터는 ‘&’로 구분한다.
  • URL에 전송 데이터가 모두 노출되기 때문에 보안에 문제가 있으며 전송할 수 있는 데이터의 한계가 있다. (최대 255자).
  • REST API에서 GET 메소드는 모든 또는 특정 리소스의 조회를 요청한다.

POST

  • POST 방식은 Request Body에 담아 보내는 방식이다.
  • URL에 전송 데이터가 모두 노출되지 않지만 GET에 비해 속도가 느리다.
  • REST API에서 POST 메소드는 특정 리소스의 생성을 요청한다.

사용목적 : GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용한다.
DB로 따지면 GET은 Select 에 가깝고, POST는 Create 에 가깝다고 볼 수 있다.



reference : https://ko.wikipedia.org/wiki/%EC%9B%94%EB%93%9C_%EC%99%80%EC%9D%B4%EB%93%9C_%EC%9B%B9 https://opentutorials.org/course/1

profile
기억보단 기록을 ✨

0개의 댓글