티스토리 뷰
http란?
💡 신뢰성 있는 데이터 전송 프로토콜로 전송 중 손상되거나 꼬이지 않음을 보장한다
웹 클라이언트와 서버
웹 서버란?
인터넷의 데이터를 저장하고 http 클라이언트가 요청한 데이터를 제공한다.
- 도메인에 접근해 http요청을 인터넷 도메인 주소로 서버에 요청한다
- 해당 리소스를 찾고 성공했다면 해당 리소스를 클라이언트에 반환한다.
그냥 간단히 말해서 http프로토콜을 사용하는 인터넷 주소에 접근하면 request response 하는거다.
리소스
웹서버에서 관리하는 콘텐츠
- 정적콘텐츠, 동적콘텐츠로 분리된다.
- 파일시스템에 저장되는 파일은 정적 콘텐츠로 분리된다
- 특정 정보에 따라 변할 수 있는 콘텐츠는 동적콘텐츠로 분린된다
- 콘텐츠의 종류는 한가지로 정의할 수 없다. 즉 어떤 종류의 콘텐츠도 리소스가 될 수 있다
미디어 타입
콘텐츠의 종류에 따라 MIME타입 이라는 포맷을 사용한다.
- 사선(/)을 기준으로 주타입 부타입으로 구분이 된다.
- Content-Type 헤더를 통해 확인이 가능하며 파일을 분석하는데 사용이 가능하다.
URI
리소스의 위치를 나타내고 식별자로 사용한다.
- url과 urn 두 형태로 나뉘며 현재는 url을 사용한다.
- 현재는 url과 구분을 두지않으며 일반적은 주소형태를 url표기법으로 나타낸다.
url
<http://liberaliberi.githuyb.io/introduction>
프로토콜 / 서버주소(도메인) / 리소스 위치.
http 트랜잭션
http프로토콜을 통해 request response의 일련의 과정
메소드
http의 여러가지 종류의 요청명령을 지원한다 (rest api를 통헤 crud operation을 지원한다.)
rest api란?
💡 http프로토콜을 통해 자원의 위치를 명시하고 메소드를 통해 crud operation을 실행한다.
상태코드
클라이언트에게 요청이 어떻게 왔는지 세자리 수를 통해 알려준다.
http 메시지 (entity)
클라이언트와 서버간의 데이터 요청 양식
- 시작줄
- 요청은 무엇을 해야하는지, 응답은 무슨일이 일어났는 지 반환한다.
- 요청: 메소드, 주소, http 버전
- 응답: http 버전, status, message
- 헤더
- 메시지의 부가정보를 의미한다
- key, value 형태로 이루어져 있다.
- 본문
- 데이터를 실어보내는데 사용된다.
- http 메소드에 따라 생략이 가능하다.
TCP 커넥션
💡 대중적이고 신뢰성 있는 인터넷 전송 프로토콜
- tcp ip 계층의 3 4 계층을 맡고 있다.
- 신뢰성을 기반으로 한 데이터를 전송한다.
- 오류없는 데이터 전송
- 순서대로 전달
- 조각나지 않는 데이터 스트림
- 패킷교환 프로토콜의 집합
- 데이터를 일정크기로 잘라서 전송한다.
- 어떤 환경에서는 신뢰성 있는 의사소통을 한다.
접속, ip주소, 포트번호
- TCP 커넥션을 통하여 서버의 리소스에 접근한다.
- url을 통해 요청하려는 주소에 접근이 가능하다.
- ip주소와 포트번호를 통해 원하는 주소에 접근한다.
- ip 계층에서 mac주소를 통해 원하는 서버까지 접근한다.
- 포트번호를 통해 서버의 프로세스에 도달하여 커넥션을 요청한다.
순서
- URL에서 호스트명 추출
- DNS를 통해 IP로 변환, 포트번호 추출
- TCP커넥션 요청
- 성공하면 http 요청을 보낸다
- http 응답을 받는다.
- 커넥션 종료 후 문서를 보여준다. (이거 몰랐네 헿[)
추가 개념
- 3 hand shaking (커넥션 요청) syn → syn + ack , ack
- 4 hand shaking (커넥션 종료) fin(client) → ack, fin(server) → ack
- 데이터를 주고받는 과정 seq, ack(seq+1),
웹의 구성요소
- 프락시
- 캐시
- 게이트웨이
- 터널
- 에이전트
프락시
- 보안을 위해사용
- 특정컨텐츠 및 바이러스 차단
- 요청과 응답 필터링
캐시
- 자주 찾는 것의 사본을 저장해주는 프락시 서버
- 근처의 캐시를 통해 빠르게 문서에 접근한다.
게이트웨이
- http 트래픽을 다른프로토콜로 변환하기 위해 사용된다.
터널
- 데이터를 열지않고 그대로전달한다.
- 암호화 된 ssl 트래픽을 http 커넥션으로 연결하는데 사용된다. https
에이전트
- http 요청을 만들어주는 클라이언트 프로그램 (브라우저, mobile 브라우저 등)
- 사람의 통제없이도 돌아다니는 스파이더나 웹로봇도 에이전트가 된다.
출처
http 완벽가이드
'네트워크' 카테고리의 다른 글
주소창에 주소를 입력하면 일어나는 일 (0) | 2023.03.09 |
---|---|
[http 완벽가이드] http 메시지 (0) | 2023.03.09 |
[http 완벽가이드] URL과 리소스 (0) | 2023.03.09 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 자바스크립트
- 선언적 UI
- serverless 배포
- 미로탈출 명령어
- 불량 사용자 자바스크립트
- suspense 장점
- storybook react is not defiend 해결
- node version yarn berry
- 백준 1600번
- nextjs 에러핸들링
- 서비스 디자인 패턴
- storybook scss이슈
- React useCallback
- javascript
- 백준 22862
- 표현 가능한 이진트리
- 관심사 분리하기
- 가장 긴 짝수 연속한 부분 수열
- 서버사이드 error handling
- CSS
- nextjs errorboundary
- useCallback과 useMemo 사용
- 에러핸들링
- nestjs 배포하기
- 1600 파이썬
- react suspense
- node 버전 마이그레이션
- serverless nestjs
- React useMemo
- storybook scss import
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함