JaeWon's Devlog
article thumbnail
Published 2020. 3. 1. 16:52
HTTP (2) Tool, 이론 및 기타/이론
반응형

HTTP의 동작 원리 ->2020/03/01 - [Web] - HTTP (1)


1. HTTP 메시지 형식

  • 요청을 보내고 응답을 받을 때 우리는 그 정보들을 패킷(Packet)이라는 작은 조각에 실어서 보내게 됩니다.
  • 패킷은 크게 '헤더(Header)' '바디(Body)'로 되어 있는데, Header에는 보내는 사람의 주소, 받는 사람의 주소, 패킷의 생명 시간 (TTL, Time To Live) 등이 담겨 있고, Body에는 우리가 전하고자 하는 실제 내용이 들어 있습니다.

  • 클라이언트가 서버에게 요청하는 메시지는 Request Message
  • 서버가 클라이언트 요청에 응답하는 메시지는 Response Message

  • 요청과 응답의 구조는 서로 닮았으며, 위의 그림과 같습니다.
    시작 줄(start-line)에는 실행되어야 할 요청(Request), 또는 요청 수행에 대한 성공 또는 실패가 기록되어 있다.
        이 줄은 항상 한 줄로 끝나게 된다.
    ② 옵션으로 HTTP 헤더 세트가 들어갑니다. 여기에는 요청에 대한 설명, 혹은 메시지 본문에 대한 설명이 들어있다.
    ③ 요청에 대한 모든 메타 정보가 전송되었음을 알리는 빈 줄(empty line)이 삽입 된다.
    ④ 요청과 관련된 내용(HTML 폼, 콘텐츠 등)이 옵션으로 들어가거나, 응답과 관련된 문서(document)가 들어간다.
        본문의 존재 유무 및 크기는 첫 줄과 HTTP 헤더에 명시된다.
  • HTTP 메시지의 시작 줄과 HTTP 헤더를 묶어서 요청 헤드(head)라고 부르며,
    이와 반대로 HTTP 메시지의 페이로드는
     본문(body)이라고 합니다.
  • 위와 같은 정보를 확인은 크롬브라우저의 검사 기능을 통해 쉽게 확인할 수 있다.
    아무 페이지에서 마우스 우클릭 -> 검사를 누르거나 F12를 누르면 크롬 개발자 도구를 열 수 있다.
    우리는 상단의 탭 중에서 'Network'에 들어간다.

 

  • General
    - 요청 url 정보와 메소드, 상태 코드를 확인할 수 있습니다.
  • Response Headers
    - 응답 헤더. 응답 온 패킷의 헤더를 확인할 수 있습니다.
    - 서버의 종류, 연결 상태 등이 담겨 있습니다.
  • Request Headers
    - 요청 헤더. 요청을 보낸 패킷의 헤더를 확인할 수 있습니다.
    - 보낸 클라이언트의 종류, 요청한 파일의 종류 등을 알 수 있습니다.

2. HTTP Request Method

Request Method Explanation
Get (데이터 획득) 웹 서버에 데이터 전송을 요청
Post (데이터 전송) 클라이언트에서 웹 서버로 데이터를 전송
Put (데이터 갱신) 클라이언트에서 웹 서버로 데이터를 전송
새로운 데이터 전송이 아닌 데이터 갱신이 목적
Delete (데이터 삭제) 웹 서버의 데이터 삭제를 요청
Options 웹서버에서 지원되는 메소드의 종류를 확인할 경우 사용.
Head 웹 서버에 헤더를 요청한다.
실제 문서(body)가 아닌 문서에 대한 정보(header)만을 요청한다.
 
Trace 원격지 서버에 루프백 메시지 호출하기 위해 테스트용으로 사용.
Connect 동적으로 터널 모드를 교환, 프락시 기능을 요청시 사용.

3. HTTP Status (응답 코드)

응답 대역 응답코드 설명
정보 응답 100 ~ 199 정보성 상태 코드는 HTTP/1.1 에서 도입되어 비교적 새로운 것이며,
복잡함을 감수할 만큼 가치가 있는지에 대해 논란이 되고 있다.
성공 응답 200 ~ 299 클라이언트가 요청을 보내면, 요청은 대게 성공함.
서버는 대응하는 성공을 의미하는 각각의 요청에 대응한다.
200 : 요청은 정상이고, 본문은 요청된 리소스를 포함하고 있다.
리다이렉션 메시지 300 ~ 399 클라이언트에 요청에 대해 적절한 다른 위치를 제공하거나,
대안의 응답을 제공한다.
클라이언트 에러 응답 400 ~ 499 클라이언트의 잘못된 요청에 대한 대응 코드
403 : 요청이 서버에 의해 거부 되었음을 의미
404 : 요청한 URL을 찾을 수 없음을 의미
서버 에러 응답 500 ~ 599 올바른 클라이언트 요청에 대해 서버의 문제로 응답 할 수 없음을 의미
500 : 서버에 오류가 발생하여 응답 할 수 없음을 의미

출처

https://cordelia273.space/11

- https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

- https://velog.io/@honeysuckle/HTTP-%EC%83%81%ED%83%9C-%EC%BD%94%EB%93%9C-HTTP-status-code-

반응형
profile

JaeWon's Devlog

@Wonol

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!