View
HTTP , 인터넷을 사용해 봤다면 단어를 보르는 사람이 없을 것이다.
어떤 곳에 들어가기위해서는 주소가 필요하고 그 주소앞에 붙어있는 것을 보았을 것이기 때문이다.
그렇다면 HTTP란 무엇일까?
Hypertext transfer Protocol,
줄여서 HTTP는 어플리케이션 레벨의 프로토콜로 인터넷상에서 데이터를 주고받기 위한 것이다.
서버/클라이언트 모델을 따르며 클라이언트가 서버에게 HTTP 요청을 보내면 서버는 요청된 데이터를 HTTP 응답으로 돌려준다.
HTTP 프로토콜의 특징
1. 비연결성 (Connectionless)
클라이언트의 요청에 따른 응답이 이뤄진 후에는 연결이 끊기게 된다. 이 덕에 서버는 트래픽을 많이 잡지 않아도 되고, 여러 클라이언트가 접근할 수 있게된다.
2. 무상태성 (Stateless)
비연결성과 이어지는 특징으로 연결이 끊기기 때문에 이전에 처리된 통신을 알 수 없다.
따라서 로그인과 같은 경우는 정보가 쿠키나 세션을 통해 저장된다.
* 쿠키는 클라이언트 브라우저에 저장되는 것, 세션은 서버에 저장되는 것으로 쿠키가 세션ID (JSESSIONID)를 가지고 있다.
3. 전송매체에 독립적임(media independent)
통신시에 단일 전송매체에 종속되지 않는다. 즉 , 서버와 클라이언트가 다룰 수 있는 데이터라면 어떤 유형이라도 HTTP 프로토콜을 통해 보낼 수 있다.
HTTP Message
Network : HTTP Request Message (HTTP 요청 메세지)
이전 글에서 HTTP 프로토콜은 요청을 보내고 응답을 받을 때 Message를 보낸다고 했다. 좀 더 세부적으로 정리해보려고 한다. HTTP Request Message 1) Request Line Request Line(요청줄)은 Method , URI , HTTP..
w94dev.tistory.com
1) HTTP Request Message (요청 메세지)
Request-line 에서는 Method / URI / HTTP 버전이 명시되어 있다.
- Method(메서드) : 서버에게 어떤 동작을 취해야 할지 알려주는 역할 .
- URI : HTTP 요청이 전송되는 목표주소.
- HTTP Version : 버전에 따라 메시지구조나 데이터가 다를 수 있어서 버전을 명시
피들러를 통해 확인해도 좋고, 크롬에서는 F12를 눌러 개발자 모드의 Network에서 확인할 수 있다. 앞에 있는 GET이 Method, / 이 URI , HTTP/1.1이 버전임을 알 수 있다.
Header에서는 HTTP 요청에 대한 정보를 담고 있다.
Empty line을 통해 header와 body가 구분된다.
body에 HTTP 요청이 전송하는 데이터를 담아서 보낸다. 전송하는 데이터가 없을 경우에는 body 부분이 비어 있을 수 있다.
2) HTTP Response Message (응답 메세지)
Status line(상태줄)에서는 http버전, Status code(상태코드) , Reason phrase(사유 구절)로 구성되어있다. 상태코드를 통해 요청 중 어떤 상황이 일어났는지 설명해주고, 사유구절을 통해 상태 코드의 의미를 확인할 수 있다.
'Server' 카테고리의 다른 글
AD :: Active directory 사용자 이름 CN값 변경하기 (renaming a user, change cn property of (0) | 2022.03.06 |
---|---|
Network : HTTP Request Message (HTTP 요청 메세지) (0) | 2020.05.12 |
Spring : 스프링 프레임웍에 Spring Security 적용하기 -1 (0) | 2020.02.08 |
Server : Sitemesh 적용하기 (0) | 2020.01.11 |
JSP : URI/ ContextPath/ URL/ServletPath의 차이점 (0) | 2019.12.31 |