HTTP 개요
TCP (Transmission Control Protocol)
3 way handshake
데이터를 전송하기 전에 신뢰성있는 데이터 전송을 성립하기 위해 사용하는 연결 확인 방식
4 way handshake
세션을 종료하기 위해 사용하는 방식
TCP 패킷 중 헤더(Header)에 있는 TCP 플래그를 활용한다.
SYN: 연결요청 플래그
ACK: 응답 플래그
FIN: 연결종료 플래그
HTTP Request Message
요청 라인 (Request Line)
HTTP 메소드 (Method)
GET, POST 등 HTTP 통신에서 사용되는 메소드
타겟 (URI)
클라이언트가 가져오고자 하는 리소스
프로토콜 버전
브라우저가 현재 사용하고 있거나 사용할 수 있는 HTTP의 버전
헤더 (Header)
Host
요청하는 서버 도메인주소 또는 IP 주소 + 포트주소 (기본포트일 경우 생략됨)
User-agent
사용자의 웹 브라우저 정보
Accept
브라우저가 처리할 수 있는 데이터의 형태
Connection
Keep-alive가 디폴트이고 서버와의 연결상태를 정의
Content-Type
전송하고자 하는 데이터의 타입과 문자열 인코딩 등을 명시
Content-Length
요청하는 Body의 크기를 바이트(byte) 단위로 표시함
Body
HTTP Request가 전송하는 데이터를 담고 있는 부분이고
전송하는 데이터가 없다면 body 부분은 비어있다.
HTTP Response Message
상태 라인 (Status line)
프로토콜 버전
사용하고 있는 HTTP의 버전
상태 코드 (Status Code)
요청 결과를 나타내는 XXX(3자리 숫자) 의 상태코드
문구
사람이 읽을 수 있는 텍스트 형태로 간략하게 나타내는 설명
헤더 (Header)
Request Message의 헤더와 비슷하지만 응답(Response)에서 사용하는 값들이 따로 있다.
Date
메세지가 전송된 시간
Server
소프트웨어 웹서버의 스펙
Last-modified
요청된 리소스의 마지막 수정 시간
Body
데이터가 없다면 body 부분은 비어있다.
URL
URI (Uniform Resource Identifier)
논리적 또는 물리적 리소스를 식별하는 고유한 문자열 스퀀스
URL 구성요소
scheme://[유저정보@]host[:port][/path][?query][#fragment]
scheme
프로토콜 종류 (ex: http / https / ftp / ws)
host
DNS 또는 IP주소 (ex: www.naver.com / 223.130.200.104)
port
접속포트 (ex: 80, 443)
path
리소스 경로 (ex: /index.html 또는 /path/to/myfile.html, /users/1)
query
query param 또는 query string 라고도 하고
key=value 형태로 서버에 전달하는 데이터이다
&를 사용하여 여러개의 파라미터를 넘겨준다.
fragment
HTML 내부 북마크 등에 사용하는 값이고 서버에 전송하지 않는다.
참고 링크
본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.
'코딩캠프 > AI 웹개발 취업캠프' 카테고리의 다른 글
[AI 웹개발 취업캠프] 19Day - 백엔드 HTTP(3), Rest API(1) (1) | 2023.08.10 |
---|---|
[AI 웹개발 취업캠프] 23.08.09 과제 (0) | 2023.08.10 |
[AI 웹개발 취업캠프] 17Day - 백엔드 HTTP(1) (0) | 2023.08.08 |
[AI 웹개발 취업캠프] 23.08.08 과제 (0) | 2023.08.08 |
[AI 웹개발 취업캠프] 16Day - 백엔드 OT, 웹서버 (0) | 2023.08.07 |