[프로젝트] 베지도_0826 :: HTTP

hyihyi·2023년 8월 25일
0

베지도

목록 보기
3/7

과제 : HTTP 요청 / 헤더 / 바디 / 패킷 공부하기

1.HTTP 소개

1990년에 웹이 처음 세상에 나옴

웹은 4가지로 요소로 이루어져 있음.

1.HTML
: 웹 페이지를 만드는 컴퓨터 언어

2.URL / URI
: 원하는 웹페이지에 방문할 수 있게 도와주는 주소 체계
URL은 자료의 위치, URI는 자료의 식별자

URI O, URL O : https://marrrang.tistory.com/72.html
URI O, URL X : https://marrrang.tistory.com/72

3.Web browser / Web server
: 웹 페이지를 주고받는 소프트웨어

4.HTTP
: 웹 브라우저와 웹 서버가 통신할 때 사용하는 통신 규칙

이 네가지는 웹이 아무리 복잡해도 한 발자국도 벗어날 수 없음.

우리의 관심사는
HyperText Transfer Protocol, HTTP

오늘날에는 HTML같은 텍스트 파일 뿐만 아니라 이미지,오디오,동영상과 같은 다양한 멀티미디어 파일을 전송하는 매우 중요한 프로토콜로 군림

서버-클라이언트
클라이언트는 어떤 메시지를 통해 서버에게 요청하고,
서버는 어떤 메시지를 이용해 응답하는지 살펴볼 것.

2.HTTP 소개

서버-클라이언트
클라이언트가 서버한테 물건(HTML)을 요청함.
서버가 클라이언트에게 물건을 줌
요청 : Request
응답 : Response

HTTP : Request, Response를 나타냄

HTML, CSS, JS, 이미지와 같은 파일들은 서로가 주고받는 Content

이 Content를 주고받기 위해서는 서버-클라이언트 사이에 공통의 약속인 Message가 필요함

이 Message가 HTTP

HTTP는 크게 Request와 Reponse를 위한 Message로 구분되어 있다.

Request Headers : 우리의 웹 브라우저가 웹 서버에게 요청한 데이터

웹 브라우저의 기능 : 사용자가 요청한 정보를 웹 서버에게 대신 물어봐주는 텍스트 정보를 만들어줌
웹 서버 : 자기가 가지고 있는 정보를 보내주면서 응답 헤더를 만들어줌
웹 브라우저는 웹 서버에게 응답받은 정보를 화면에 그려줌

<내 정리>
HTTP : 서버와 클라이언트 사이에 Content를 Request와 Response로 주고 받을 수 있는 공통의 약속인 Message

1.웹 브라우저는 사용자가 요청한 정보를 웹 서버에게 대신 물어봐주는 텍스트 정보를 만들어줌
2.웹 서버는 자기가 가지고 있는 정보를 보내주면서 응답 헤더를 만들어줌
3.웹 브라우저는 웹 서버에게 응답받은 정보를 화면에 그려줌

HTTP 헤더

HTTP 헤더는 HTTP 요청과 응답 메시지의 시작 부분에 위치하며, 클라이언트와 서버 간에 메타데이터와 제어 정보를 교환하는 데 사용

요청 헤더 (Request Headers)
:클라이언트가 서버에 보내는 요청에 사용되며, 요청된 리소스나 클라이언트 자체에 대한 정보를 제공합니다.
예: Accept, Host, User-Agent

응답 헤더 (Response Headers)
:HTTP 응답에 포함되며, 응답의 상태나 정보를 클라이언트에 알립니다.
예: Location, Server, WWW-Authenticate

HTTP 바디

요청이나 응답의 실제 데이터를 포함하는 부분
데이터 포함: POST나 PUT 요청에서 서버에 데이터를 제출할 때, HTTP 요청의 바디에 이 데이터가 포함됩니다. 예를 들면, 웹 폼을 통해 제출된 데이터, 파일 업로드 등이 여기에 해당됩니다.

3.Request message

1.Request Line :

GET(메서드) /1.html(우리가 웹 서버에 요청하는 정보가 무엇인지) HTTP/1.1(웹 브라우저가 현재 사용할 수 있는 HTTP의 버전)

2.Request Headers

Host : 필수! 인터넷에 연결되어 있는 컴퓨터 한대한대를 직결하는 이름, 우리가 요청하는 웹 서버의 주소.
User-Agent : 웹 브라우저의 다른 이름

3.Body : 서버쪽에 전송해야 하는 정보

Body와 Header는 blank line으로 구별되어 있음

HTTP 요청 메서드

  1. GET
    리소스를 조회. 웹 브라우저 주소창에 URL을 입력하면 기본적으로 GET 요청
  2. POST
    새로운 리소스를 생성하거나, 서버에 데이터를 제출
  3. PUT
    기존 리소스를 대체하거나, 지정된 URI에 리소스를 생성/대체
  4. DELETE
    지정된 리소스를 삭제
  5. PATCH
    리소스의 부분적인 변경

-GET

GET /index.html HTTP/1.1

Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://www.google.com/
Cache-Control: max-age=0

-POST

POST /api/users HTTP/1.1 			//헤더
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
Accept: application/json
Content-Type: application/json; charset=UTF-8
Authorization: Bearer YOUR_ACCESS_TOKEN_HERE
Content-Length: 81

 { 									//바디
  "username": "john_doe",
  "email": "john@example.com",
  "password": "secure_password123"
}

4.Response message

HTTP/1.1 200 OK //헤더
Date: Wed, 25 Aug 2021 19:23:10 GMT
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: Sat, 25 Jul 2021 20:30:00 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 150

<html> //본문
<head>
    <title>Example Page</title>
</head>
<body>
    <h1>Welcome to the example page!</h1>
    <p>This is a simple web page.</p>
</body>
</html>

패킷

. . .

profile
자유롭게 쓴 나의 자유로운 Development voyage⛵

0개의 댓글