인터넷(network 통신)의 이해
• 인터넷 != world wide web
www는 인터넷 기반의 대표 서비스 중 하나이다. 각각의 서버는 포트 값으로 구분되어 동작한다.
이름 | 프로토콜 | 포트 | 기능 |
WWW | HTTP | 80 | 웹서비스 |
SMTP/POP3/IMAP | 25/110/114 | 이메일 서비스 | |
FTP | FTP | 21 | 파일 전송 서비스 |
DNS | TCP/UDP | 53 | 네임 서비스 |
NEWS | NNTP | 119 | 인터넷 뉴스 서비스 |
• 인터넷 (Internet)
TCP/IP 기반의 네트워크가 전 세계적으로 확대되어 하나로 연결된 네트워크들의 네트워크(네트워크의 집합체)
HTTP(Hypertext Transfer Protocol)이란?
• Tim Berners-Lee와 그가 속한 팀은 CERN에서 HTML 뿐만 아니라 웹 브라우저 및 웹 브라우저 관련 기술과 HTTP를 발명하였다. 문서화된 최초의 HTTP 버전은 HTTP v0.9 (1991년)이다.
• HTTP는 server와 client가 인터넷 상에서 데이터를 주고 받기 위한 protocol이다.
• HTTP는 계속 발전하여 현재 HTTP/2까지 버전이 등장하였다.
• HTTP는 어떤 종류의 데이터도 전송이 가능하도록 설계되어 있다. 동영상이나 이미지 등도 모두 가능하다.
HTTP 작동방식
• HTTP는 서버/클라이언트 모델을 따른다.
즉 클라이언트가 요청을 보내면 서버가 클라이언트에게 응답을 보내는 것이다.
• HTTP는 무상태(Stateless) 프로토콜이다.
클라이언트가 서버에게 요청하면 서버는 응답하고 나서 바로 클라이언트와 연결을 끊는다. 클라이언트는 바로 다음 것을 요청한다고 하더라도 이전 요청을 했던 클라이언트인지 서버는 알 수 없다.
장점
이는 불특정 다수를 대상으로 하는 서비스에 적합하다. 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답을 처리할 수 있다.
단점
클라이언트의 이전 상황을 알 수 없다. 이를 보완하기 위하여 cookie와 같은 모델이 등장하게 되었다.
URL
• URL (Uniform Resource Locator)
URL은 웹 상에서 문서와 다른 자원들의 위치를 나타내기 위해서 사용된다.
URL은 크게 세 부분으로 나뉘어진다.
첫 번째 부분은 protocol의 종류를, 두 번째는 자원이 있는 서버의 IP나 domain 주소 또는 port 번호를 나타내고, 마지막 부분은 자원의 위치를 나타낸다.
물리적인 컴퓨터를 나타내는 IP 또는 domain 주소를 알아야 한다. 이후 물리적인 컴퓨터 안에 있는 소프트웨어 서버를 찾기 위해서는 port 값이 필요하다.
HTTP의 동작
클라이언트가 서버에 요청하면 서버가 응답하는 과정이 있다. 응답이 끝나고 나면 서버와 클라이언트의 연결을 끊어진다. 요청되는 데이터들은 정해진 규칙에 따라 가게 되는데 이를 요청 데이터 포맷이라고 한다.
요청 메시지는 헤더 부분, 빈 줄 부분, 요청 바디 부분 의 세 부분으로 나누어진다.
헤더 부분은 GET 으로 시작하는 요청 method로부터 시작한다. 그 다음 요청하는 자원의 위치와 요청하는 프로토콜의 버전을 명시한다. 요청 method는 GET 외에도 여러 가지가 있다. 위의 그림에는 요청 바디에 아무 것도 없는데, GET method는 URI에 붙여서 가므로 특별히 필요한 것이 없다. 요청 바디는 POST나 PUT의 경우에 사용된다.
• 요청 메서드 : GET, PUT, POST, PUSH, OPTIONS 등의 요청 방식이 있다.
- GET : 정보를 요청하기 위해서 사용한다. (SELECT)
- POST : 정보를 밀어넣기 위해서 사용한다. (INSERT)
- PUT : 정보를 업데이트하기 위해서 사용한다. (UPDATE)
- DELETE : 정보를 삭제하기 위해서 사용한다. (DELETE)
- HEAD : (HTTP)헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용한다.
- OPTIONS : 웹서버가 지원하는 메서드의 종류를 요청한다.
- TRACE : 클라이언트의 요청을 그대로 반환한다. 예컨데 echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용한다.
• 요청 URI : 요청하는 자원의 위치를 명시한다.
• HTTP 프로토콜 버전 : 웹 브라우저가 사용하는 프로토콜의 버전이다.
응답 데이터 포맷도 헤더, 빈줄, 바디로 나뉘어진다.
첫 줄에는 반드시 응답 HTTP 프로토콜의 버전, 응답 코드 ,응답 메시지로 나뉘어진다.
나머지 헤더 부분에는 날짜, 웹 서버 이름과 버전, cache 제어 방식 등의 값이 나오게 된다.
빈 줄 뒤에 오는 것이 실제 응답 리소스 데이터 부분이다.
+ HTTPS는 HTTP에 ssl이 붙은 것으로 보안이 강화된 버전이다.
'CS > HTML·CSS·JavaScript' 카테고리의 다른 글
[HTML] 아주 멋진 닭 (0) | 2021.07.03 |
---|