HTTP통신이란?
- 컴퓨터끼리 네트워크 통신을 할 때 여러가지 방식으로 가능하며 이런 방식들을 묶어서 통신 프로토콜이라고 함
- 웹 서버와 통신을 할 때 사용하는 HTTP 프로토콜, 메일을 주고 받을 때 사용하는 SMTP 프로토콜, 파일을 전송할 때 사용하는 FTP 프로토콜 등
- HTTP 통신: HTTP 프로토콜을 활용한 통신
- HTTP 프로토콜 - 브라우저가 웹 서버와 통신을 하기 위해 생긴 프로토콜
- 대부분의 네트워크 통신에서 사용되는 대중적인 프토로콜
- 개발한 웹, 서버는 전부 HTTP 프로토콜로 통신하게 됨
- HTTP 통신은 기본적으로 요청(request)과 응답(response)으로 나눠서 이해할 수 있음
- 요청과 응답 모두 공통적으로 아래와 같은 구조를 가짐
- HTTP 프로토콜 - 브라우저가 웹 서버와 통신을 하기 위해 생긴 프로토콜
- 요청 라인 - URL, Method 같은 핵심 요청 정보가 들어가며 요청과 응답에 따라 구성 요소가 다름
- Header - HTTP 관련 여러 설정 값이 들어감
- Body - 통신에 필요한 데이터가 들어감(옵션)
HTTP 요청
- HTTP 통신으로 서버에게 정보를 요청하기 위해선 몇가지 규칙을 지켜야 함
- 어떤 서버에게 요청할 것인지 URL이 있어야 함 (요청 라인)
- 어떤 방식으로 통신을 할 것인지 Method가 있어야 함 (요청 라인)
HTTP Method
- 클라이언트가 서버에게 HTTP 요청을 할 때 URL 주소와 함께 HTTP Method를 정해야 함
- HTTP Method에 따라 서버에서는 어떤 요청인지를 파악할 수 있음
- 대표적으로 사용되는 GET, POST 외에도 PUT, DELETE 등 많은 Method가 있음
- 서버의 세계에서는 같은 URL 주소로 서버에게 요청하더라도 method가 다르면 아예 다른 요청으로 간주
GET
- 일반적으로 정보를 받아올 때 사용하는 Method
- HTTP 요청을 할 때 method를 설정하지 않으면 기본 메소드로 GET이 들어감
- 일반적으로 웹 서버에서 웹을 다운받을 때 GET을 사용
- 사용 예시
- 웹 서버에서 웹을 다운받을 때
- 내 상품 정보들을 받아올 때
POST
- 새로운 자원을 생성할 때 POST를 많이 사용
- 사용 예시
- 로그인을 할 때 아이디, 패스워드를 담아야 함
- 아티클을 만들 때 입력한 아티클 정보를 담아야 함
HTTP 요청에 정보 담기
- 클라이언트가 HTTP 요청을 할 때 정보를 담아야 하는 경우가 많음
- 회원가입을 할 때 회원 정보를 서버에게 보내줘야 함
- 상품을 만들 때 상품 정보를 서버에게 보내줘야 함
- 로그인을 할 때 아이디 패스워드를 담아야 함
- 이때 Request method에 따라 정보를 담는 방식이 다름
GET
- GET 방식은 서버에 데이터를 전송받아야 할 때 url 맨 뒤에 query를 붙임
- query는 key=value 형태로 구성
- POST도 마찬가지로 URL 뒤에 query를 붙일 수 있음
POST
- POST 메소드의 경우 HTTP의 Body 부분에 데이터를 담을 수 있음
- Body는 HTTP 통신에 구조적으로 데이터를 담아서 전송할 수 있게 도와줌
- 대표적으로 로그인, 상품 업로드, 결제하기 등 우리의 정보를 담아서 보내야하는 경우 많이 사용됨
- GET은 Body에 데이터를 담을 수 없음
HTTP 응답
- 서버에서는 HTTP 요청을 받으면 열심히 일을 해서 응답을 해주며 이때 HTTP 응답의 규칙은 다음과 같음
- 응답이 어떤 상태인지를 나타내는 Status Code가 있어야 함 (요청 라인)
- 요청 결과를 Body에 담아야 함
- 이때 Status Code는 200~ 500번까지 있으며 서버의 응답에 대한 상태를 표현
Status Code
- 요청 코드는 크게 나눠보면 아래와 같음
- 200번대는 정상적으로 응답을 했을 때
- 400번대는 클라이언트가 요청을 잘못했을 때
- 500번대는 서버에서 에러가 발생했을 때
- 대표적인 응답 코드
- 200: 정상적으로 응답이 됨
- 404: 해당 URL 요청을 처리할 수 없음
- 500: 서버에서 알 수 없는 에러가 발생
Reference
https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#
IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의
본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는! 단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하
www.inflearn.com
https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304
[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩
장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.
www.grabbing.me
'비개발자의 개발 지식 스터디 > 개발 배경지식' 카테고리의 다른 글
URL (0) | 2023.07.25 |
---|---|
API (0) | 2023.07.12 |
라이브러리 & 프레임워크 (0) | 2023.07.12 |
네트워크 (0) | 2023.07.12 |
Git & Github (0) | 2023.07.12 |