Henu
개발냥발
Henu
전체 방문자
오늘
어제
  • 분류 전체보기 (411)
    • DevOps (52)
      • Kubernetes (19)
      • Docker (14)
      • AWS (3)
      • Nginx (4)
      • Linux (4)
      • ArgoCD (1)
      • CN (2)
      • NATS (0)
      • Git (5)
    • Back-End (30)
      • Django (18)
      • Spring (5)
      • JPA (1)
      • MSA (5)
    • CS (87)
      • SystemSoftware (20)
      • OS (25)
      • Computer Architecture (16)
      • Network (23)
      • Database (2)
    • Lang (21)
      • Java (9)
      • Python (4)
      • C# (8)
    • Life (12)
    • 블록체인 (2)
    • Algorithm (204)
      • BOJ (160)
      • 프로그래머스 (19)
      • LeetCode (4)
      • SWEA (1)
      • 알고리즘 문제 해결 전략 (8)
      • DS, algorithms (7)
      • Checkio (5)
    • IT (2)

블로그 메뉴

  • GitHub
  • 글쓰기
  • 관리자

공지사항

  • Free!

인기 글

태그

  • 프로그래머스
  • django
  • Kubernetes
  • 다이나믹 프로그래밍
  • boj
  • BFS
  • docker
  • DFS
  • 백트래킹
  • Network

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Henu

개발냥발

DevOps/Linux

[Linux] 웹사이트 동작 체크 명령어는?

2022. 4. 10. 23:39

제목을 보고 ping 이라고 생각했다면..?!

 

 

curl을 사용해 보았나요?
어떤 상황에서 어떤 옵션들을 사용해 보았나요?

 


cURL

curl은 CLI 기반의 웹 요청 도구이다.

Linux, MacOS, Windows 등의 대부분의 OS에서 사용 가능하며, HTTP, HTTPS, FTP, TELNET, SMTP, IMAP, POP3등의 프로토콜과 소켓 통신까지 지원한다.

 

 

포맷

curl [option] <url>

 

한 번 curl https://www.google.com 을 실행해 보자.

아마 자바스크립트 코드와 바이너리 코드들로 터미널이 꽉 찰 것이다.

curl 은 기본적으로 GET 방식으로 url을 호출한다.

 

curl 요청에 임의의 header를 넣을 수 있고, JSON 형식의 데이터도 넣어서 보낼 수 있다.

 

 

다양한 옵션

옵션의 순서는 중요하지 않음!

 

curl -v

 

curl 요청에 들어가는 자세한 옵션을 출력해준다.

  • google.com의 IP주소를 알 수 있다. (216.58.220.110)

  • 내가 보낸 request의 프로토콜(HTTP/1.1)과 형식을 알 수 있다.(GET)

  • request에 입력된 다양한 header들을 볼 수있다.

 

https로 요청을 보내면 TLS handshake과정도 볼 수 있다.

 

인증서의 기간, 적용 도메인등을 모두 확인할 수 있다.

구글은 인증서 적용 기간이 매우 짧음을 알게 된다.

 

위 터미널에 나오는 handshake 과정을 모두 설명할 수 있나요?

 

HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상)

고대 그리스에서는 타인에게 노출되어서는 안 될 중요한 정보를 보낼 때, 전달하는 이(사자)의 머리를 빡빡 깎아서 중요한 정보를 적은 후 머리가 자라서 글이 보이지 않으면 그제야 상대방에게

aws-hyoh.tistory.com

 

 

curl -L

서버에서 HTTP 301 이나 HTTP 302 응답이 왔을 경우 redirection URL 로 따라간다.

--max-redirs 뒤에 숫자로 redirection 을 몇 번 따라갈지 지정할 수 있다. 기본 값은 50이다.

 

curl -v google.com 을 실행하면 결과값으로 다음과 같이 HTTP 301 이 리턴된다.

HTTP/1.1 301 Moved

-L 옵션을 추가하면 www.google.com으로 재접속하여 결과를 받아오게 된다.

 

 

curl --data
curl -X POST --data '{"key1":"xyz", "key2":"xyz", "key3":1, "key4":"test", "key5":"asecurity", "key6":"asecurity"}' \
http://localhost/

key-value 쌍으로 데이터를 보낼 수 있다.

이때 POST라고 명시하지 않아도 자동으로 POST 요청으로 전송된다.

 

curl -o

curl -o kk.yaml https://raw.githubusercontent.com/kubernetes/website/main/content/ko/examples/application/deployment.yaml

 

파일을 다운로드 받으며 원하는 이름으로 받을 수 있다.

kk.yaml 으로 파일을 받게 된다.

 

 

curl -O

대문자라면 원래 파일 이름으로 받게 된다.

 

여러 파일을 한 번에 다운로드 하려면 각 url마다 앞에 -O 옵션을 붙여서 사용하면 된다.

curl \
-O kk.yaml https://raw.githubusercontent.com/kubernetes/website/main/content/ko/examples/application/deployment.yaml 
-O https://raw.githubusercontent.com/kubernetes/website/main/content/ko/examples/pods/resource/memory-request-limit.yaml

 

curl -k

https사이트에 SSL인증 없이 요청을 보낼 수 있다.

 

 

curl -I

curl -I --http2 https://www.google.com/

리소스의 HTTP 헤더만 가져올 수 있다.

 

 

curl -H

원하는 헤더를 입력할 수 있다.

아래 -X 예제에서 같이 확인.

 

curl -X

원하는 HTTP 메소드를 뒤에 붙여서 사용할 수 있다.

curl -X POST \
    --data "" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets?datasetId=my-dataset"

 

'DevOps > Linux' 카테고리의 다른 글

[Linux] 리눅스 서버 접속 방법과 도구(ubuntu)  (0) 2022.03.31
Ubuntu IP 설정하기 (Virtual Box)  (0) 2022.03.13
Linux - GCC/Make  (0) 2021.04.22
    'DevOps/Linux' 카테고리의 다른 글
    • [Linux] 리눅스 서버 접속 방법과 도구(ubuntu)
    • Ubuntu IP 설정하기 (Virtual Box)
    • Linux - GCC/Make

    티스토리툴바