HTTP

[HTTP] 네트워크 서비스와 애플리케이션 계층

날아 2023. 1. 30. 02:30

1. 애플리케이션 계층의 역할

사용자가 직접 사용하는 프로토콜

  • HTTP - 웹 클라이언트와 웹 서버 사이에서 웹 페이지 데이터를 주고받는다
  • POP, SMTP, IMAP - 메일을 송수신하고 보관한다
  • SMB, AFP - LAN안에서 파일을 공유한다
  • FTP - 서버를 통해 파일을 주고받는다
  • Telnet, SSH - 원격에서 서버를 제어한다

사용자가 간접 사용하는 프로토콜

  • NTP : 네트워크에 연결된 장비들의 시스템 시간을 동기화할 때 사용

 

웹 페이지를 전송하는 HTTP
HTTP : HTML + 화면 구성에 필요한 각종 파일들의 정보

HTTP 요청과 URL
특정 웹 페이지를 받아보기 위해서는 HTTP 요청을 보내야 하는데, 이때 URL이라는 문자열을 이용한다.
URI와 URL

  • URI (Uniform Resource Indentifier)
    • Uniform : 리소스 식별하는 통일된 방식
    • Resource : 자원, URI로 식별할 수 있는 모든 것 (제한 없음)
    • Identifier : 다른 항목과 구분하는데 필요한 정보
  • URL & URN
    • URL - Locator : 리소스가 있는 위치를 지정
      • 위치는 변할 수 있지만, 이름은 변하지 않는다.
      • URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음URN - Name : 리소스에 이름을 부여

2. URL 특징

 

scheme
  • 주로 프로토콜 사용
  • ex) http(80포트), https(443포트), ftp 등
  • 포트는 생략 가능
  • https는 http에 보안 추가 (HTTP Secure)
userinfo
  • URL에 사용자 정보를 포함해서 인증
  • 거의 사용하지 않음
host
  • 호스트명
  • 도메인명 또는 IP 주소를 직접 사용 가능
path
  • 리소스 경로, 계층적 구조 
  • ex) /home/file1.jpg
query
  • key=value 형태
  • ?로 시작, &로 추가 가능
  • 쿼리 파라미터, 쿼리 스트링 등으로 불림
  • 웹서버에서 제공하는 파라미터, 문자형태 

 

host와 port를 통해 IP와 포트번호를 알 수 있다.

3. 웹 서비스와 웹 애플리케이션 

  • 웹 페이지 : 웹 서버가 미리 만들어 둔 정적인 HTML 파일의 데이터로 응답
  • 웹 서비스 : 서버 프로그램이 HTML 데이터를 동적으로 만들어서 응답한다.
    • ex) 인터넷 사이트 게시판, 검색 서비스, 온라인 쇼핑몰

 

AJAX
  • Asynchronous JavaScript and Xml : 비동기 자바스크립트와 xml
  • 웹 서버와 자바스크립트 사이의 통신으로 이루어진다.
  • 자바스크립트와 XMLHttpRequest 객체를 사용해서 클라이언트와 서버가 비동기 방식으로 통신하는 것
  • 웹 브라우저가 화면을 새로 갱신하는 것이 아니고, 자바스크립트가 웹 페이지의 특정 부분에만 갱신되도록 처리
    • ex) 검색 입력 도중 유사한 키워드 후보 표시 
  • 불필요한 데이터 통신 X (변경할 부분을 갱신하는 데에 필요한 데이터만 서버로부터 전송받는다.)
  • 화면이 순간적으로 깜박이는 현상 X (변경할 필요가 있는 부분만 다시 렌더링한다.)
  • 클라이언트 블로킹 X 

4. 이메일

이메일을 송수신 할 때는 SMTP(발신), POP(수신), IMAP와 같은 여러 프로토콜이 사용된다.

  • SMTP : 스테이트풀 프로토콜이기 떄문에 전송 종료 명령이 보내져야 통신을 종료한다.
  • POP : 수신자의 메일 서버에 저장된 메일 확인, 수신한 메일 건수나 용량 확인, 메일 삭제 등을 처리.
  • SMPT auth : SMPT에 사용자 인증 기능이 추가된 확장 프로토콜
  • IMAP : 클라이언트 PC가 메일을 수신하더라도 메일 서버에서 수신한 메일을 지우지 않고 보관

5. 파일을 전송하는 FTP

FTP는 네트워크에 연결된 서버로 파일을 전송하기 위한 프로토콜이다.

  • 데이터 커넥션 : 파일을 주고받기 위한 접속 형태
  • 컨트롤 커넥션 : 명령어를 보내기 위한 접속 형태

→ 분리되어 있는 이유 : 파일 전송 중에도 명령을 줄 수 있어서 전송 중인 파일을 중단시키는 것이 가능하다.

 

액티브 모드와 패시브 모드 

방화벽이나 가정용 초고속 인터넷 라우터를 사용하는 경우 외부와의 통신을 차단하는 경우가 많다.

특히 FTP 서비스에서는 서버 내부에서 외부로 나가는 통신을 방화벽이 차단하여 파일 전송이 안 되는 경우가 발생하기도 하는데, 이때는 패시브 모드를 사용해서 클라이언트 쪽에서 서버 쪽으로 역방향으로 데이터 커넥션을 만들어주면 파일을 전송할 수 있게 된다.

 

 

 

출저

인프런 강의  모든 개발자를 위한 HTTP 웹 기본 지식 (김영한 강사님)

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

'HTTP' 카테고리의 다른 글

[HTTP] RESTful  (0) 2023.01.31
[HTTP] 암호화와 HTTPS  (0) 2023.01.31
[HTTP] 트랜스포트 계층  (0) 2023.01.31
[HTTP] 컴퓨터 네트워크  (0) 2023.01.30