일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 데이터베이스
- sql
- 리액트프로젝트
- html
- servlet
- msa개념
- 웹개발자
- two pointers
- Programming
- Bambino
- 밤비노
- MSA
- CSS
- 웹개발기초
- jvm메모리구조
- C
- 코드잇
- SpringFramework
- jsp
- job
- coding test
- DB
- microservices
- mysql
- 웹개발
- 안드로이드
- 자바
- BCIT
- Java
- MVC
- Today
- Total
초보 개발자의 기록
HTTP 프로토콜 본문
HTTP 프로토콜 ?
웹 브라우저와 웹 서버 사이의 데이터 통신 규칙
웹브라우저 ---요청---> 웹 서버
<---응답---
클라이언트와 서버사이에 서비스를 요청하고 응답하는 방식
SOAP ((Simple Object Access Protocol)
RESTful (Representational State Transfer)
--> HTTP 프로토콜을 응용하거나 확장한 기술
웹 브라우저와 웹 서버 사이에 주고받는 데이터를 보려면 HTTP 프록시 프로그램이 필요하다
웹 브라우저 --요청--> HTTP 프록시 --요청--> 웹 서버
<--응답-- <--응답--
프록시 서버?
클라이언트와 서버 사이에서 통신을 중계해 주는 컴퓨터나 프로그램
주 용도
1. 빠른 전송을 위해 서버의 응답 결과를 캐시에 저장해줌
2. 보안- 외부로전달되는 데이터를 검사하여 특정 단어가 포함된 자료의 송, 수신을 차단하거나 보안 팀에 경고 보냄
HTTP 요청
웹 브라우저는 요청 데이터 라인을 구분하기 위해 각 문자열 끝에 개행 문자를 붙여 웹 서버에 전송
요청 라인 (Request-Line)
GET_ /_ HTTP/1.1 _
[메서드][공백][요청 URI][공백][HTTP버전][개행(CRLF)]
- 메서드 : 요청하는 자원에 대해 웹 서버에 내리는 명령어
- 요청 URI : 요청하는 자원의 식별자
- HTTP 버너 : 요청 정보가 어떤 버전에 맞추어 작성했는지 웹 서버에게 알려줌
요청 헤더
User-Agent : Mozilla/5.0(Maci....)
[헤더 이름][:][헤더값][CRLF]
헤더의 종류
1. 일반 헤더 (General-header) : 요청이나 응답에 모두 적용가능
2. 응답 헤더 (Request-header) : 요청 또는 응답 둘 중 하나에만 적용가능
3. 엔티티 헤더 (Entity-header) : 보내거나 받는 본문 데이터를 설명
공백라인과 요청 데이터(message-body)
GET: 웹 브라우저 주소창에 url을 입력하거나 웹 페이지에서 링크를 클릭하는 경우 보내는 요청. 공백라인으로 끝남
서버에 보낼 데이터가 있다면 URL 주소에 붙여 보냄
POST: 로그인이나 게시글을 등록하는경우 보통 사용하는 요청. 공백라인 다음에 보낼 데이터(message-body) 가 온다
HTTP 응답
웹 브라우저가 요청하면 웹 서버는 그에 대한 작업을 수행한 후 응답 데이터를 보냄
상태라인(Status-Line)
응답메세지의 첫 라인은 응답 결과에 대한 상태 정보
HTTP/1.1_200_OK
[HTTP버전][공백][상태코드][공백][상태설명][CRLF]
(응답 상태 코드)
200 : 요청이 성공적으로 처리
301 : 요청한 자원이 이동 / 헤더 정보에 이동 위치를 알려줄테니 다시 요청하라
304 : 클라이언트가 임시 보관한 응답결과와 다르지 않다
400 : 잘못된 요청이다
404 / 500 : 요청한 자원을 못 찾았다 /서버 내부에서 오류가 발생하였다.
응답헤더
응답 데이터를 처리할 떄 참고하라고 웹 브라우저에게 알려주는 정보