728x90
HTTP(Hypertext Transfer Protocol)란?
HTTP는 인터넷상에서 데이터를 주고받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다.
애플리케이션 레벨의 프로토콜로, TCP/IP 위에서 작동한다.
작동 방식
HTTP는 서버/클라이언트 모델을 따른다.
클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response)한다.
- 클라이언트 : 서버에 요청하는 클라이언트 소프트웨어가 설치된 컴퓨터이디다. 클라이언트는 URI를 이용해서 서버에 접속하고, 데이터를 요청할 수 있다.
- 서버 : 클라이언트의 요청을 받아서, 요청을 해석하고 응답을 하는 소프트웨어가 설치된 컴퓨터이다.
웹서버는 보통 표준 포트인 80번 포트로 서비스한다.
Connectless & Stateless
HTTP는 Connectless 방식으로 작동한다.
서버에 연결하고, 요청해서 응답을 받으면 연결을 끊어버린다.
기본적으로는 자원 하나에 대해서 하나의 연결을 만든다.
- 장점 : 불특정 다수를 대상으로 하는 서비스에 적합한 방식이다. 수십만명이 웹 서비스를 사용하더라도 접속 유지는 최소한으로 할 수 있기 때문에, 더 많은 유저의 요청을 처리할 수 있다.
- 단점 : 연결을 끊어버리기 때문에, 클라이언트의 이전 상태를 알 수가 없다. 이러한 HTTP의 특징을 Stateless라고 하는데, Connectless로부터 파생되는 특징이라고 할 수 있다. 클라이언트의 이전 상태 정보를 알 수 없게 되면, 웹 서비스를 하는 데 당장 문제가 생긴다. 예컨데, 클라이언트가 과거에 로그인을 성공하더라도 로그 정보를 유지할 수가 없다. HTTP는 쿠키와 세션을 이용해서 이 문제를 해결하고 있다.
URI(Uniform Resource Identifiers)
클라이언트 프로그램은 URI를 이용하여 자원의 위치를 찾는다.
URI는 HTTP와는 독립된 다른 체계다.
HTTP는 전송 프로토콜이고, URI는 자원의 위치를 알려주기 위한 프로토콜이다.
WWW(World Wide Web) 상에서 접근하고자 하는 자원의 위치를 나타내기 위해서 사용한다.
메소드(Method)
메소드는 요청의 종류를 서버에게 알려주기 위해서 사용한다.
- GET : 정보를 요청하기 위해서 사용한다. (SELECT)
- POST : 정보를 밀어넣기 위해서 사용한다. (INSERT)
- PUT : 정보를 업데이트하기 위해서 사용한다. (UPDATE)
- DELETE : 정보를 삭제하기 위해서 사용한다. (DELETE)
- HEAD : (HTTP)헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지 확인하기 위해서 사용한다.
- OPTIONS : 웹서버가 지원하는 메소드의 종류를 요청한다.
- TRACE : 클라이언트의 요청을 그대로 반환한다. echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용한다.
728x90
'2022 하계방학 SW 집중교육' 카테고리의 다른 글
[Java] Apache Tomcat (0) | 2022.08.18 |
---|---|
[Java] DB 연동 (0) | 2022.08.15 |
[MySQL] 계정 및 권한 생성 (0) | 2022.08.15 |
[Java] Checked Exception vs Unchecked Exception (0) | 2022.08.15 |
[Github] Personal Access Token (0) | 2022.08.15 |