일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다익스트라 알고리즘(Dijkstra Algorithm)
- BFS(Breadth First Search)
- 백준 17608번
- 백준 2493번
- 백준 10000번
- 백준 1707번
- 백준 21606번
- 스택(Stack)
- 백준 2504번
- 위상 정렬(Topological Sort)
- 분할 정복(Divide and Conquer)
- 이분 그래프(Bipartite Graph)
- 트리(Tree)
- 백준 2261번
- 그래프(Graph)
- 백준 1948번
- 백준 18352번
- DFS(Depth First Search)
- 이분 탐색(Binary Search)
- 플로이드 워셜 알고리즘(Floyd-Warshall Algorithm)
- 동적 프로그래밍(Dynamic Programming)
- 그리디 알고리즘(Greedy Algorithm)
- 큐(Queue)
- 위상 정렬(Topology Sort)
- DFS
- 알고리즘 개념
- DFS & BFS
- 백준 2812번
- 백준 9012번
- BFS
- Today
- Total
Always Be Wise
웹 서버 본문
웹 클라이언트와 웹 서버는 HTTP(Hypertext Transfer Protocol)라고 하는 프로토콜을 사용하여 상호 연동한다. 클라이언트와
서버는 TCP 연결을 수립하고, 클라이언트는 서버에게 콘텐츠를 요청한다. 서버는 요청한 콘텐츠로 응답하고, 클라이언트와 서버는
연결을 닫는다. 이때 웹 클라이언트와 서버가 주고 받는 콘텐츠는 MIME(Multipurpose Internet Mail Extensions) 타입을 갖는
바이트 배열이다.
HTTP 응답에서 반환된 콘텐츠는 정적(Static) 혹은 동적(Dynamic) 콘텐츠이다. 정적 콘텐츠란 서버 파일 안에 저장된 콘텐츠를
의미하며, 요청에서 어떤 콘텐츠 파일인지를 식별한다. 동적 콘텐츠란 프로그램에 의해 런타임에 만들어진 콘텐츠를 의미하며,
요청에서 실행 가능한 코드를 포함하고 있는 파일을 식별한다. 즉, 웹 콘텐츠는 서버가 관리하는 파일과 연관되며 이 파일 각각은
URL(Universal Resource Locator)이라고 하는 고유의 이름을 가진다. 클라이언트와 서버는 트랜잭션 동안에 URL의 서로 다른
부분을 사용한다.
HTTP 요청
HTTP 요청은 요청 라인과, 요청 헤더들로 구성된다. 요청 라인과 헤더는 다음과 같은 형태를 갖는다.
HTTP는 요청 라인에서 GET, POST, PUT, DELETE, OPTIONS, HEAD, TRACE 등 다양한 메소드를 지원한다. URI는 파일
이름과 인자들을 폼하는 URL의 접미어를 의미한다. 버전 필드는 요청이 준수하는 HTTP 버전을 나타낸다. 요청 헤더는 서버에
부가적인 정보를 제공한다.
HTTP 응답
HTTP 응답은 응답 라인과 요청 헤더들, 콘텐츠들로 구성된다. 응답 라인과 헤더는 다음과 같은 형태를 갖는다.
버전 필드는 응답이 준수해야 할 HTTP 버전을 나타낸다. 상태 코드는 3비트 양수의 요청 특성을 나타내며 상태 메시지는
에러 코드를 영어로 나타낸 것이다. 응답 헤더는 클라이언트에게 콘텐츠의 MIME 타입과 그 크기를 알려주는 등 부가적인 정보를
제공한다.
HTTP 표준은 각 텍스트 라인이 "\r\n"으로 끝날 것을 요구한다. 즉, 위의 빈 줄에서 요청과 응답 헤더가 종료된다.
'컴퓨터 시스템 > CSAPP' 카테고리의 다른 글
네트워크 프로토콜(HTTP / HTTPS) (0) | 2021.12.22 |
---|---|
네트워크 계층 모델 (0) | 2021.12.21 |
시스템 수준 입출력 (0) | 2021.12.20 |
소켓과 소켓 인터페이스 (0) | 2021.12.16 |
글로벌 IP 인터넷 (0) | 2021.12.16 |