일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- golang
- 백준 12761번
- String 함수
- flask
- 도메인 주도 개발 시작하기
- 12761번 돌다리
- 파이썬
- ddd
- MongoDB Realm
- 고 배열
- 자바 디자인 패턴
- go
- http 완벽가이드
- hadoop
- domain driven develop
- 자바 디자인패턴
- 백준 12761
- 도메인 주도 개발
- 트리 순회
- 12761 돌다리
- 우분투
- 백준 사이트
- 백준
- 백준 파이썬
- http 개념
- golang struct
- 정렬
- 하둡
- 몽고디비 렘
- 자바
- Today
- Total
개발바닥
1장 HTTP 개관 [1.1 ~ 1.5] 본문
1장에는 HTTP에 대해서 개략적으로 살펴본다.
HTTP는 Hypertext Transfer Protocol에 약어로 웹에서는 HTTP를 통해서 서로 서버와 클라이언트가 대화를 한다.
1.1 HTTP: 인터넷의 멀티미디어 배달부
HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용하기 때문에, 데이터가 손상 되거나 꼬이지 않음을 보장한다.
Q. 왜 신뢰성 있는 것일까?
A. TCP/IP를 사용하기 때문에
1.2 웹 클라이언트와 서버
클라이언트가 서버로 HTTP 요청을 하고 서버는 요청을 받아서 처리 후 클라이언트에게 HTTP 응답을 해준다.
Q. 웹 서버란 무엇일까?
A. 웹 서버는 다양한 서비스(호스트)들을 관리하는 관리자이다.
1.3 리소스
웹 서버는 웹 리소스를 관리하고 제공한다. 웹 리소스는 웹 서버 파일 시스템의 정적 파일이다.
정적 파일이란 텍스트 파일, 이미지, 동영상 파일 등 모든 종류의 파일들이다.
동적 파일은 새로운 콘텐츠를 생성하는 것이다. 라이브 영상 제작, 주식 거래 등 실시간으로 새로운 콘텐츠를 생성하는 것으로 생각하면 된다.
1.3.1 미디어 타입
인터넷은 다양한 데이터 타입을 다루기 위해서 전송되는 객체 각각에 신중하게 MIME(다목적 인터넷 메일 확장) 타입이라는 데이터 포맷 라벨을 붙인다.
웹 서버는 모든 HTTP 객체 데이터에 MIME 타입을 붙인다. 객체로 돌려받은 웹 브라우저(클라이언트)는 MIME 타입을 통해 다룰 수 있는 객체인지 판별을 한다.
Q. 웹 서버가 객체를 넘겨줄 때 MIME을 타입을 반드시 지정을 해주고 넘겨줘야 되는 것인가?
A.
1.3.2 URI
URI는 인터넷의 우편물 주소 같은 개념으로 웹 서버 리소스는 각자 이름을 갖고 있기 때문에, 클라이언트는 특정 리소스를 지목해서 사용할 수 있다.
URI에는 두 가지 개념이 있다. URL과 URN이다.
1.3.3 URL
URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 서술한다. ex) http://www.breathings.co.kr/index.html 브레싱스 회사 홈페이지 URL
URL은 리소스가 정확히 어디에 있고 어떻게 접근할 수 있는 분명히 알려준다.
Q. URL을 보고 어떻게 접근하는 것일까?
A. http:// -> 리소스를 접근하기 위한 HTTP 프로토콜 사용, www.breathings.co.kr -> 서버의 인터넷 주소 제공, index.html -> 웹 서버의 리소스
1.3.4 URN
URN은 콘텐츠를 이루는 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할을 한다.
Q. URI vs URL vs URN 헷갈린다. 무슨차이일까?
A. URI= identify(식별) 문자열을 사용하여 문서를 식별 URL = locate(위치) 해당 위치에서 리소스를 가져오는 방법에 대한 정보를 포함 URN = Name(이름) 고유하고 영구적인 이름으로 리소스를 식별하지만 인터넷에서 리소스를 찾는 방법을 반드시 알려주지 않는다.
1.4 트랜잭션
HTTP 트랜잭션은 요청 명령과 응답 결과로 구성되어 있다.
1.4.1 메서드
HTTP는 HTTP 메서드라고 불리는 여러 가지 종류의 요청 명령을 지원한다.
모든 HTTP 요청 메시지는 한 개의 메서드를 갖는다. 이 메서드는 서버에게 어떤 동작이 취해져야 하는지 알려주는 역할을 한다.
Q. HTTP 메서드에는 어떤 것들이 있을까?
A. GET, PUT, POST, DELETE, HEAD 가 있다.
1.4.2 상태 코드
모든 HTTP 응답 메시지는 상태 코드와 함께 반환한다. 상태 코드는 클라이언트가 요청에 대한 결과를 파악하는데 중요한 지표이다.
1.4.3 웹페이지는 여러 객체로 이루어질 수 있다.
애플리케이션은 보통 하나의 작업을 수행하기 위해 여러 HTTP 트랜잭션을 수행한다.
하나의 웹 페이지 안에는 이미지, 동영상, 텍스트 등 다양한 리소스들이 존재하기 때문에 보통 대량의 HTTP 트랜잭션을 수행한다.
1.5 메시지
HTTP 메시지는 세 부분으로 이루어진다.
시작줄, 헤더, 본문
시작줄 - 요청이라면 무엇을 해야 하는지, 응답이라면 무슨 일이 일어났는지 나타낸다.
헤더 - 0개 이상의 헤더 필드가 이어진다. 헤더 정보를 담는다.
본문 - 어떤 종류의 데이터든 들어갈 수 있는 메시지 본문이 필요에 따라 올 수 있다.
'HTTP 완벽 가이드' 카테고리의 다른 글
1장 HTTP 개관 [1.6 ~ 1.8] (0) | 2021.11.10 |
---|