티스토리 뷰
HTTP Protocol에 대하여 알아보고 그에 따른 사용법 혹은 상태코드등에 대하여 확인할수 있는 자료를 기술하였다.
HTTP Method Test
telnet command를 활용하여 www.your-server.com 80(또는 웹서의 포트) 명령 수행후
다음과 같은 명령을 수행시 HTTP response code가 출력된다.(GET 혹은 HEAD method 사용)
example)
HEAD /index.html HTTP/1.1
Host: 192.168.1.1
CRLF
※ CRLF는 (\r\n)으로 엔터키 두번입력하면 데이터 전송이 가능하다.
HTTP Message Header
1. 일반헤더
- cache-control
- no-cache
- no-store
- public
- private
2. 워닝(warning)헤더
3. 기타헤더
Connection
Date
Pragma
Trailer
Transfer-Encoding
Upgrade
Via 헤더 : 전달하는 GW, Proxy, Tunnel 사용에 대한 표시
4. 요청헤더
Accept 헤더
Accept-Charset 헤더
Accept-Encoding 헤더
Authorization 헤더
Expect 헤더
From 헤더
Host 헤더
If-Match 헤더
If-Modified-Since 헤더
If-None-Match 헤더
5. 응답헤더
Accept-Ranges 헤더
Age 헤더
ETag 헤더
Location 헤더
Proxy-Authenticate 헤더
Retry-After 헤더
Server 헤더
Vary 헤더
Cache-Control 헤더
HTTP Method
정의 : 클라이언트가 서버에게 특정한 행동을 요구하도록 한다.
1. GET Method
- 특정 URL의 자원을 요청할 때 사용
- HTML 페이지, 이미지, 텍스트 파일등의 자원에 대한 요청
- 파라메터를 URL상에 표현하여 서버에 넘겨줄수 있음
- 조건부 GET 요청도 가능하다(특정 헤더 포함시 ex. If-Modified-Since, If-Match 등)
2. HEAD Method
- 문서에 대한 헤더정보를 조회하기 위해 사용된다.
3. POST Method
- GET 메소드와 달리 파라메터가 URL상에 표현되지 않고 HTTP Body상에 입력된다.
- 대개 폼에 입력한 데이터를 서버에 전송하여 상태를 변경하는 작업에 사용됨
4. PUT Method
- 서버에 문서를 업로드하기 위해 사용된다.
5. TRACE Method
- 디버깅을 목적으로 사용된다.
6. DELETE Method
- 웹서버에 있는 문서를 삭제하기 위해 사용된다.
7. CONNECT Method
-
8. OPTIONS
- 지정된 문서에 대해 서버가 어떤 기능과 옵션을 제공하는지를 조회한다.
GET / POST 차이점
1. 공통 정의
웹에서 데이터를 전달할때 사용되는 방식
2. 차이점
- 길이 제한(chunk : Content-length)
- GET은 url 주소값 노출, POST는 url이 HTTP Body에 포함되므로 직접적 노출 없음
(허나 패킷 덤프하여 내용 확인 가능하여 Xecureweb 등의 툴을 사용하여 암호화)
- RFC2616에 의해 정의되어 POST request에 대한 response는 캐시하면 안된다.
(허나 위는 룰일뿐 캐시를 사용하는 경우도 있다.)
- 인코딩 방식이 서로 상이
- 히스토리 백이 이루어지는 경우 GET은 이전데이터를 보여주나 POST는 새로 요청 수행
3. 실제 사용 사례
- GET : 단순 페이지 요청(서버데이터 가져오는 일)에 많이 사용
- POST : 서버로 데이터 전송(게시판 글 수정 및 등록 등)을 하는 목적으로 많이 사용
- 만약 URL에 ID / Password등을 전달하는 경우 GET의 경우 text 그대로 노출
허나 POST의 경우 body에 포함하여 암호화하여 전달이 가능
Status Code
1. Information Status code : (1XX) : 예약된 상태코드
2. Sucess status code (2XX) : 문서요청의 성공적 처리
3. Redirection status code (3XX) : 문서의 URL 변경
4. Client error code :
- 400 : bad request / HTTP 요청 구문상의 오류
- 401 :
- 403 :
- 404 :
5. Server error code (500) : server error / 서버상의 문제
참고사이트
- http://qaos.com/sections.php?op=viewarticle&artid=206
- "TCP/IP 완벽 가이드 (책)" 참고함
- http://blog.outsider.ne.kr/312
- http://hainaru.tistory.com/45
- Total
- Today
- Yesterday
- OpenStack
- crashloopbackoff
- metallb
- wsl2
- minio
- socket
- K3S
- azure policy
- DevSecOps
- boundary ssh
- openstack backup
- Jenkinsfile
- macvlan
- ansible
- kubernetes install
- minikube
- mattermost
- kata container
- openstacksdk
- jenkins
- Helm Chart
- ceph
- Terraform
- vmware openstack
- hashicorp boundary
- kubernetes
- aquasecurity
- open policy agent
- nginx-ingress
- GateKeeper
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |