본문 바로가기
public void static main()/Lecture

[HTTP웹기본지식] HTTP_03_2

by 햄리뮤 2021. 1. 12.
반응형

아~~~~~~~~~~~~~ 임시저장 안했는데 다 날라가서 다시쓰네

부들부들
대표 이미지! [출처] https://velog.io/@limes/Web-HTTP

HTTP 메시지

서버와 클라이언트 간의 데이터가 교환되는 방식

요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지

응답(response)은 요청에 대한 서버의 답변

 

메시지는 기본적으로 위와 같이 시작줄(Start-Line), 헤더 블록(Header), 본문(Body) 세 부분으로 이루어짐!

  • 시작줄: 이것이 어떤 메시지인지 서술.
  • 헤더 블록: 속성
  • 본문: 데이터를 담고 있으며, 아예 없을 수도 있음!

모든 HTTP 메시지는 요청 메시지와 응답 메시지 두 가지로 분류된다.

  • 요청 메시지: 웹 서버에 어떤 동작을 요구한다.
  • 응답 메시지: 요청의 결과를 클라이언트에게 돌려줌!

 

Structure of a request message [출처] https://flylib.com/books/en/4.253.1.155/1/

 

(응애인 저의 기준으로 제일 정리가 잘되어있는

한 블로그에서 대부분 발췌..!! ychae-leah.tistory.com/82 감사해요!블로거님!)

 

HTTP 요청 메시지 구조

  • 요청 메시지는 세 부분으로 구성되어 있다

    • Start Line (요청 내용)
      • HTTP 메소드 / Request target / HTTP version
    • Header
    • Body

 

HTTP Response Message Format [출처] http://www.tcpipguide.com/free/t_HTTPResponseMessageFormat.htm

1. Start Line 요청 내용

  • HTTP 메소드 / Request target / HTTP version

    • HTTP 메소드 : 요청의 의도를 담고 있음 ex) GET, POST
    • Request target : HTTP 요청이 전송되는 목표 주소
    • HTTP version : 버전에 따라 요청 메시지 구조나 데이터가 다를 수 있어서, version을 명시

2. Header 헤더

  • HTTP 요청 그 자체에 대한 정보를 담고 있다

  • 파이썬의 딕셔너리 자료형처럼 key : value 로 이루어져 있다

  • 헤더 정보

    • Host : 요청이 전송되는 target의 호스트 URL 주소
    • User-Agent : 요청을 보내는 클라이언트의 정보 ex) 웹 브라우저의 정보
    • Accept
      • 해당 요청이 받을 수 있는 응답 body 데이터 타입의 정보
      • 모든 타입을 허용하는 경우 */*로 지정 (*_* 꺄르륵)
      • MIME type : Multipurpost Internet Mail Extensions ex) application/json)
    • Connection
      • 해당 요청이 끝난 후에 클라이언트와 서버간의 연결을 계속 유지할 것인지 끊을 것인지 알려주는 헤더
      • HTTP 요청 때마다 네트워크 연결을 새로 만드는 건 번거롭기 때문에 요청이 계속되는 한 처음 연결을 재사용하는 것이 바람직
      • keep-alive : 네트워크 연결을 유지해라
      • close : 더이상 요청을 보내지 않으니 연결을 닫아라
    • Content-Type
      • HTTP 요청이 보내는 메시지 body 타입을 알려줌
      • MIME type
    • Content-Length : 요청이 보내는 메시지 body의 총 사이즈 정보

3. Body

  • HTTP 요청이 전송하는 데이터를 담고 있는 부분
  • 전송하는 데이터가 없다면 body 부분은 비어있다 (위 사진의 경우, Body가 없음)

 

 

HTTP 응답 메시지 구조

  • 응답 메시지 또한 세 부분으로 구성되어있음!
    • Status Line
      • HTTP version / Status Code / Status Text
    • Header
    • Body

HTTP Requests Message Format [출처] http://www.tcpipguide.com/free/t_HTTPRequestMessageFormat.htm

1. Status Line

  • HTTP version / Status Code / Status Text
    • HTTP version
    • Status Code
      • 응답 상태를 나타내는 코드 (ex.200 요청 정상 처리)
    • Status Text
      • 응답 상태를 간략하게 글로 설명해줌 (ex. OK)

2. Header

  • HTTP 요청 메시지의 헤더와 동일
  • 단 User-Agent 헤더 대신 Server 헤더가 사용됨

3. Body

  • HTTP 요청 메시지의 body와 동일
  • 전송하는 데이터가 없으면 비어 있음

메서드 (Method)

메서드는 서버에게 어떤 동작이 일어나야 하는지를 지정해주는 것이다.

메서드 설명 본문 유무
GET 서버에서 어떠한 문서를 가져옴
HEAD 서버에서 어떠한 문서에 대해 헤더만 가져옴
POST 서버가 처리해야 할 데이터를 보냄
PUT 서버에 요청 메시지 본문을 저장
TRACE 메시지가 프락시를 거쳐 서버에 도달하는 과정을 추적
OPTION 서버가 어떤 메서드를 수행할 수 있는지 확인
DELETE 서버에서 문서를 제거

모든 서버가 위 표의 메서드를 모두 구현하는 것은 아님!!

위의 메서드에 대해서 더 알고싶으시다면 velog.io/@codemcd/HTTP-%EB%A9%94%EC%8B%9C%EC%A7%80-lqk14ernft 블로그 참고!

 

아~ 하다가 다~~ 날라가서 첨부터 또 작성해서 완전 공부 하기 시러시러!!

마무리는 했다.... 개발자가 되는 길은 험난하구나...!

 

오늘도 저에게 많은 가르침을 주신 저만의 튜터분들 사랑합니다!

덕분에 오늘도 지식 스킬 레벨업!

 

[출처] developer.mozilla.org/ko/docs/Web/HTTP/Messages

 

HTTP 메시지 - HTTP | MDN

HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. 메시지 타입은 두 가지가 있습니다. 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지

developer.mozilla.org

[출처] velog.io/@codemcd/HTTP-%EB%A9%94%EC%8B%9C%EC%A7%80-lqk14ernft

 

HTTP 메시지

들어가며... HTTP Web 서버를 구현해보면서 HTTP 메시지에 대해 정리를 해야겠다는 생각을 하게 되었다. HTTP 메시지는 단순한, 데이터의 구조화된 블록이다. HTTP 메시지는 다음과 같이 두 가지가 존

velog.io

[출처] flylib.com/books/en/4.253.1.155/1/

 

17.1. HTTP Request and Response Classes | Core C# and .NET

HTTP specifications[1] concisely define messages as "requests from client to server and responses from server to client." At its most elemental level, the role of ASP.NET is to enable server-based applications to handle HTTP messages. The primary way it do

flylib.com

[출처] ychae-leah.tistory.com/82

 

[web] HTTP 요청-응답 메시지 구조 request-response

HTTP 통신의 특징 HTTP 요청 메시지 구조 요청 메시지는 세 부분으로 구성되어 있다 *1) Start Line (요청 내용) * HTTP 메소드 / Request target / HTTP version 2) Header 3) Body 요청 내용과 헤더 필더는 마지..

ychae-leah.tistory.com

[출처] http://www.tcpipguide.com/free/t_HTTPResponseMessageFormat.htm

 

** 그냥 하루하루 개인 공부한 것을 끄적 거리는 공간입니다.

이곳 저곳에서 구글링한 것과 강의들은

내용이 정리가 되었습니다.

그림들은 그림밑에 출저표시를 해놓았습니다.

문제가 될시 말씀해주시면 해당 부분은 삭제 하도록하겠습니다. **

반응형

댓글