일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- sprintboot
- elk
- 스프링 AOP
- 아펠가모선릉
- 스페인 준비물
- HTTP #웹기술
- 관심지향프로그래밍
- @Component
- 400에러
- 코프링
- http상태코드
- 아펠가모
- 스페인
- HTTP
- Kotlin
- kopring
- 코틀린
- c# scv
- kotiln
- git명령어
- 바르셀로나
- 세비야
- Srping AOP
- b-tree index
- 아펠가모 선릉
- 본식후기
- db index
- 코틀린 함수
- 그라나다
- 마드리드
- Today
- Total
끄적이는 메모장
[HTTP] HTTP 이해하기 (1) 본문
서버 개발자에서 웹 기술 개발자가 되기 위한 스텝. HTTP 이해하기 (1)
HTTP?
- Hypertext Transfer Protocol의 약자
- 서버와 클라이언트 사이에서 데이터를 주고 받기 위한 통신 규약정도로 정리 가능
- TCP/IP상에서 동작(OSI 7계층에서 어플리케이션 레벨)
- 다양한 형식의 데이터(텍스트, 사진, ... )를 주고 받을 수 있음
동작 방식
- 클라이언트/서버 모델
Client : URI를 기반으로 Request를 Server에 보냄
Server : Client으로 받은 Request를 처리하여 Response를 Client로 보냄
메시지 구조
- 아래와 같은 형태로
Start Line |
Header |
Blank Line |
Body |
Start Line : 요청라인 or 상태라인
- Request의 경우 (Method, Path, Version)
- Response의 경우 (Version, Status Code, Status Message)
Header : 추가로 서버쪽으로 전달하고자 하는 내용, 줄바꿈 문자로 Header를 구분
Blank Line : Header와 Body를 구분하기 위한 빈 라인
Body : 서버쪽으로 전달하고자 하는 내용 (생략 가능)
요청 예시)
GET /TEST HTTP/1.1 <--- Start Line
Host : www.exmaple.com:80 <--- Header
응답 예시)
HTTP/1.1 200 OK <--- Start Line
Content-Type : text/html <--- Header
<--- Blnak Line
<html> <--- Body
...
</html>
Method
- HTTP는 Method를 요청에 대한 의도를 명확히 할 수 있음
GET : 정보를 조회하기 위한 요청
POST : 정보를 삽입하기 위한 요청
PUT : 정보를 수정하기 위한 요청
DELETE : 정보를 삭제하기 위한 요청
특징
Connectless : 클라이언트는 요청에대해 응답을 받으면 연결을 끊음
Stateless : 서버/클라이언트 간 통신이 끝나면 상태를 저장하지 않음
- 많은 요청을 처리할 수 있지만, 클라이언트의 이전 상태를 알고 다음 요청을 처리가 힘듦
- Keep-alive, Session, Cookies !
'웹기술 개발자 되기 > HTTP' 카테고리의 다른 글
[HTTP] HTTP 이해하기 (5) / REST API, RESTful (0) | 2020.04.03 |
---|---|
[HTTP] HTTP 이해하기 (4) / HTTP status codes (0) | 2020.04.03 |
[HTTP] HTTP 이해하기 (3) / Chunked transfer, Pull & Push (0) | 2020.03.29 |
[HTTP] HTTP 이해하기 (2) / Session, Cookies, Keep-Alive (0) | 2020.03.29 |