[CS스터디] HTTP

한주영·2023년 4월 3일
0

CS

목록 보기
9/19

HTTP

➡️인터넷을 통해 데이터를 전송하는데 사용되는 프로토콜
웹브라우저에서 클라이언트가 서버에 요청을 하고 전송되는 정보를 바탕으로
서버에서 응답을 하는
클라이언트 - 서버 모델로 구성됨.
➡️즉, 웹 브라우저와 같은 클라이언트가 서버에 데이터를 요청하고 서버는 요청된 데이터로 응답
➡️ 데이터는 헤더와 본문으로 구성된 메시지 형식으로 전송

- HTTP status code

서버에 대한 클라이언트의 요청을 나타내기 위해
웹서버에서 반환되는 3가지의 숫자

정보용(1xx): 이 코드는 서버가 요청을 수신했으며 계속 처리 중임을 나타낸다
성공(2xx): 이 코드는 요청이 성공했고 서버가 요청한 콘텐츠를 반환했음을 나타냄
리디렉션(3xx): 이 코드는 요청된 리소스가 요청된 위치에서 사용할 수 없고 이동되었거나 다른 곳에서 찾을 수 있음을 나타낸다
클라이언트 오류(4xx): 이 코드는 클라이언트 요청에 매개변수 누락 또는 잘못된 오류가 있음을 나타낸다
서버 오류(5xx): 이 코드는 서버가 내부 오류로 인해 요청을 수행할 수 없음을 나타낸다

가장 일반적인 HTTP 상태 코드

200 OK: 요청이 성공했으며 서버에서 요청한 콘텐츠를 반환함
404 찾을 수 없음: 요청한 리소스를 지정된 URL에서 찾을 수 없음.
500 내부 서버 오류: 서버에서 요청을 수행하는 동안 오류가 발생

- HTTP METHOD

클라이언트가 서버에 요청을 보낼때 서버에서 수행하는 작업을 알려주는 메서드

GET: 지정된 리소스에서 정보나 데이터를 검색한다, 리소스를 조회할때 사용
➡️쿼리 스트링을 통해서 전달
➡️정적, 동적으로 나눠지는데 정적 조회일경우 쿼리 스트링(파리미터)없이 리소스 경로로 단순조회가 가능하고
동적 조회일경우 쿼리 파라미터를 이용해서 데이터를 전달 , 주로 검색과 게시판 목록 조회할때 사용
POST: 요청데이터 처리, 주로 등록할때 사용
➡️ 메세지 바디를 통해 서버로 요청 데이터를 전달하면 서버는 요청 데이터를 처리하여 업데이트
➡️전달된 데이터를 주로 신규 리소스등록 , 프로세스 처리에 사용
PUT: 리소스를 대체 (덮어쓰기), 해당 리소스가 없으면 생성
➡️리소스를 대체하는 메서드, 요청메세지에 해당 리소스가 있다면 덮고 새로 생생 , 반면에 데이터가 없으면 대체할것이 없으므로 새로 생성
DELETE:리소스를 삭제
➡️리소스를 제거하는 메서드, 상태코드는 대부분 200을 사용 , 상황에따라204를 사용함
PATCH: 리소스 부분 변경(PUT이 전체 변경, PATCH는 일부변경)
➡️ 리소스 일부분을 변경하는 메소드이고, PATCH를 지원하지않는 서버에서는 POST사용가능

HTTP 1.1 VS HTTP 2.0

1️⃣ HTTP 1.1
➡️1999년에 도입되었으며 가장 널리 사용되는 프로토콜 버전이었다
➡️요청 및 응답에 텍스트 기반형식을 사용
➡️헤더와 데이터는 빈줄로 구분
➡️단일연결을 통해 한번에 하나의 요청만 보냄

2️⃣HTTP2.0
➡️ HTTP1에 대한 개선사항, 2015년에 도입됨
➡️요청 및 응답에 이진 형식을 사용해서 보다 효율적인 데이터 전송이 가능함 , 다중화를 지원
➡️단일연결을통해 동시에 여러 요청을 보내고 받을수있음. 여러 리소스가 필요한 웹페이지의 성능이 향상
➡️서버 푸시기능이 있어 리소스가 요청되기 전에 사전에 클라이언트에 리소스를 보내 성능을 더욱 향상시킬수있음.

HTTPS

➡️HTTPS는 인터넷을 통한 보안 통신에 사용되는 HTTP프로토콜의 보안 버전
암호, 신용카드번호 같은 개인 데이터와 민감한 정보를 처리하는 웹사이트에 일반적으로 사용됨
➡️클라이언트와 서버간의 통신에 SSL/TLS암호화 계층을 추가하여 작동
사용자가 HTTPS지원 웹사이트에 연결하면 브라우저에서 웹사이트의 SSL/TLS 인증서를 통해 연결이 안전한지 확인
➡️연결이 설정되면 클라이언트와 서버간의 교환되는 모든 데이터가 암호화 되므로 제3자가 가로챌수없음
➡️ 주요이점중 하나는 데이터 가로채기 및 변조로 부터 보호한다는 것
(파싱 및 메세지 가로채지 공격과 같은 것을 방지하는데 도움이 됨)

profile
백엔드개발자가 되고싶은 코린이:)

0개의 댓글