반응형
[1] HTTP 요청메세지
(1) 방법 GET vs POST
GET | POST |
Read 서버의 리소스를 가져오기 위해 설계한다 |
Write 서버에 데이터를 쓰기 위해 설계한다 |
URL 주소에 요청메세지를 넣는다 | 바디에 요청메세지를 넣는다 |
소용량이 가능 쿼리스트링 Query String을 통해 데이터를 전달한다 |
대용량이 가능 전송데이터 크기의 제한이 없다 |
URL에 입력할 정보를 넣기 때문에 데이터 노출이 되어 보안이 취약하다 | 데이터를 요청메세지의 body에 담아 전송하여 get보다 보안이 강하다 |
데이터 전달 및 공유에 유리하다 | 데이터 전달 및 공유에는 불리하다 암호화는 TLS가 되어야 적용된다 (https://...) |
검색엔진에서 검색단어 전송에 이용한다 | 게시판에 글쓰기 만들기 로그인 회원가입 파일 첨부에 사용한다 |
post 요청방식은 <form>을 사용해야하여 post man 확장프로그램을 사용하여 적용한다 |
(2) 요청 메세지 구성
요청라인 |
헤더 |
구분줄 |
바디 |
(3) 상태코드 구분
상태코드 | 의미 | 풀이 |
1xx | Informational | 클라이언트와 서버와의 정보교환 |
2xx | Success | 성공 |
3xx | Redirect | 현재 url은 오류로, 다른 URL로 요청해라 |
4xx | Client Error | 클라이언트가 요청을 잘못한 에러 |
5xx | Server Error | 클라이언트가 요청을 알맞게 했으나 , 서버가 요청을 처리하다고 생긴 에러 예외를 처리할수 있는 대처방법이 없었기 때문에 나올수 있다 |
[2] 브라우저 조회
(1) 브라우저에서 검사
브라우저에서 요청 메서드 직접 확인해보기
오른쪽 클릭 > 검사
Network 클릭
ctrl+R 조회
요청 입력값 선택 > Headers
응답내용을 볼수 있도록 Raw 선택
(2) 요청라인 & 요청메세지 & 응답메세지 확인
제네럴 요청라인
응답 메세지
요청 메세지
이 순서대로 확인이 가능하다
[3] Postman 조회
(1) 크롬 확장프로그램 설치 : Tabbed Postman - REST Client
post 방식으로 사용하려면
확장프로그램을 설치하여 사용한다
(2) 요청메세지 GET 사용
POSTMAN을 연다
URL 입력
GET 선택
Send
값을 주지 않아서 에러가 남
URL parmas를 선택하여
year
month
day
값을 입력한다
다시 조회하면
정상적으로 출력된다
(3) 요청메세지 POST 사용
URL 입력
POST 선택
입력값 세팅
Preview 선택
요청메세지의 정보를 확인할수 있다
[4] STS4 조회
(1) 크롬 확장프로그램의 제한
크롬에서는 헤더 내용이 제한되어있다
(2) STS4 요청메세지 헤더 조회
요청 메세지의 헤더 정보 출력
(3) STS4 요청메세지 전체 조회
요청메세지 내용 전체를 출력한다
(4) STS4 요청메세지 결과
① GET 요청메세지 결과
GET /ch2/requestMessage?year=2021&month=10&day=1 HTTP/1.1 <--- 요청 라인(request line)
host:localhost:8080
connection:keep-alive
sec-ch-ua:"Chromium";v="94", "Google Chrome";v="94", ";Not A Brand";v="99"
sec-ch-ua-mobile:?0
sec-ch-ua-platform:"macOS"
upgrade-insecure-requests:1
user-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36
accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
sec-fetch-site:none
sec-fetch-mode:navigate
sec-fetch-user:?1
sec-fetch-dest:document
accept-encoding:gzip, deflate, br
accept-language:ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
② POST 요청메세지 결과
POST /ch2/requestMessage HTTP/1.1 <--- 요청 라인(request line)
host:localhost:8080
connection:keep-alive
content-length:90
sec-ch-ua:"Chromium";v="94", "Google Chrome";v="94", ";Not A Brand";v="99"
cache-control:no-cache
content-type:application/x-www-form-urlencoded
sec-ch-ua-mobile:?0
user-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36
sec-ch-ua-platform:"macOS"
accept:*/*
origin:chrome-extension://coohjcphdfgbiolnekdpbcijmhambjff
sec-fetch-site:none
sec-fetch-mode:cors
sec-fetch-dest:empty
accept-encoding:gzip, deflate, br
accept-language:ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
<--- empty line
year=2021&month=10&day=1 <--- request body
반응형
'🌈 백엔드 > 네트워크 HTTP' 카테고리의 다른 글
로컬 호스트 한글 깨짐 해결하기 (0) | 2023.08.22 |
---|---|
네트워크_텍스트파일 vs 바이너리 파일 (0) | 2023.08.09 |
네트워크_프로토콜 HTTP (0) | 2023.08.09 |
클라이언트 & 서버 & WAS (0) | 2023.08.04 |
네트워크_HTTP 요청 & 응답 (브라우저 출력) (0) | 2023.08.04 |
댓글