투케이2K

131. (TWOK/WORK) [업무 정리] [API 호출 테스트] GitBash curl -v 옵션 사용해 Api http 호출 및 핸드셰이킹 , SSL 인증서 상세 확인 테스트 본문

투케이2K 업무정리

131. (TWOK/WORK) [업무 정리] [API 호출 테스트] GitBash curl -v 옵션 사용해 Api http 호출 및 핸드셰이킹 , SSL 인증서 상세 확인 테스트

투케이2K 2025. 1. 18. 10:29

[제 목]

[업무 정리] [API 호출 테스트] GitBash curl -v 옵션 사용해 Api http 호출 및 핸드셰이킹 , SSL 인증서 상세 확인 테스트

 

[내 용]

------------------------------------------------------------------------------
[테스트 사항 및 환경]
------------------------------------------------------------------------------

환경 : 로컬 Window PC / Mac

테스트 사항 : GitBash curl -v 옵션 사용해 Api http 호출 및 핸드셰이킹 , SSL 인증서 상세 확인 테스트

------------------------------------------------------------------------------





------------------------------------------------------------------------------
[설 명]
------------------------------------------------------------------------------

1. 사전) GitBash 가 설치 되어 있지 않은 경우 다운로드 및 설치 진행


2. Git Bash 실행 실시


3. curl 명령어 사용해 api 호출 및 응답 결과 확인 수행

  >> 문법 : $ curl [옵션] [요청 주소] [헤더 값]

  >> 예시 : $ curl -d '' -v -k -X GET 'https://jsonplaceholder.typicode.com/posts?userId=1&id=1' -H 'Content-Type: application/x-www-form-urlencoded;' -w %{http_code}

     -v : http 요청에 대한 상세 로그 확인
     -k : https 프로토콜에서 SSL 인증서에 대한 검증없이 연결
     -d : http 요청 시 첨부할 데이터
     -X : 요청시 사용할 메소드의 종류 (GET, POST, PUT, PATCH, DELETE)
     -H : 전송할 헤더를 지정
     -w : http 요청 후 response status code 값을 확인

  >> 응답 결과 확인 : 

    * Host jsonplaceholder.typicode.com:443 was resolved. --------------> DNS (도메인 주소를 IP 주소로 변환)
    * IPv6: (none)
    * IPv4: 104.21.64.1, 104.21.32.1, 104.21.48.1, 104.21.96.1, 104.21.80.1, 104.21.16.1, 104.21.112.1
    *   Trying 104.21.64.1:443...
    * Connected to jsonplaceholder.typicode.com (104.21.64.1) port 443 --------------------> http 연결
    * ALPN: curl offers h2,http/1.1
    * (304) (OUT), TLS handshake, Client hello (1): ----------------------------------------> 핸드셰이킹
    * (304) (IN), TLS handshake, Server hello (2):
    * (304) (IN), TLS handshake, Unknown (8):
    * (304) (IN), TLS handshake, Certificate (11):
    * (304) (IN), TLS handshake, CERT verify (15):
    * (304) (IN), TLS handshake, Finished (20):
    * (304) (OUT), TLS handshake, Finished (20):
    * SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384 / [blank] / UNDEF
    * ALPN: server accepted h2
    * Server certificate: -------------------------------------------------------------> SSL 인증서 확인
    *  subject: CN=typicode.com
    *  start date: Dec 16 08:11:58 2024 GMT
    *  expire date: Mar 16 09:09:40 2025 GMT
    *  issuer: C=US; O=Google Trust Services; CN=WE1
    *  SSL certificate verify ok.
    * using HTTP/2 ---------------------------------------------------------> HTTP 데이터 송수신 스트림 오픈
    * [HTTP/2] [1] OPENED stream for https://jsonplaceholder.typicode.com/posts?userId=1&id=1
    * [HTTP/2] [1] [:method: GET]
    * [HTTP/2] [1] [:scheme: https]
    * [HTTP/2] [1] [:authority: jsonplaceholder.typicode.com]
    * [HTTP/2] [1] [:path: /posts?userId=1&id=1]
    * [HTTP/2] [1] [user-agent: curl/8.7.1]
    * [HTTP/2] [1] [accept: */*]
    * [HTTP/2] [1] [content-type: application/x-www-form-urlencoded;]
    * [HTTP/2] [1] [content-length: 0]
    > GET /posts?userId=1&id=1 HTTP/2 ----------------------------------------------> 클라이언트 http 요청
    > Host: jsonplaceholder.typicode.com
    > User-Agent: curl/8.7.1
    > Accept: */*
    > Content-Type: application/x-www-form-urlencoded;
    > Content-Length: 0
    > 
    * Request completely sent off
    < HTTP/2 200 -------------------------------------------------------------------> 서버 http 응답 반환
    < date: Sat, 18 Jan 2025 01:17:28 GMT
    < content-type: application/json; charset=utf-8
    < content-length: 308
    < report-to: {"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1737076300&sid=e11707d5-02a7-43ef-b45e-2cf4d2036f7d&s=kP8Cw9moaj12QDDoknffu9AtGRV7fxoVkFT9g3zBRbk%3D"}]}
    < reporting-endpoints: heroku-nel=https://nel.heroku.com/reports?ts=1737076300&sid=e11707d5-02a7-43ef-b45e-2cf4d2036f7d&s=kP8Cw9moaj12QDDoknffu9AtGRV7fxoVkFT9g3zBRbk%3D
    < nel: {"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}
    < x-powered-by: Express
    < x-ratelimit-limit: 1000
    < x-ratelimit-remaining: 999
    < x-ratelimit-reset: 1737076330
    < vary: Origin, Accept-Encoding
    < access-control-allow-credentials: true
    < cache-control: max-age=43200
    < pragma: no-cache
    < expires: -1
    < x-content-type-options: nosniff
    < etag: W/"134-QtF0EaiifRh1Z3cEspXIXV0RoQY"
    < via: 1.1 vegur
    < cf-cache-status: HIT
    < age: 1652
    < accept-ranges: bytes
    < server: cloudflare
    < cf-ray: 903abede290a5bfa-NRT
    < alt-svc: h3=":443"; ma=86400
    < server-timing: cfL4;desc="?proto=TCP&rtt=35154&min_rtt=35118&rtt_var=9940&sent=6&recv=9&lost=0&retrans=0&sent_bytes=2929&recv_bytes=631&delivery_rate=82093&cwnd=144&unsent_bytes=0&cid=583d7dddcf385d33&ts=81&x=0"
    < 
    [
      {
        "userId": 1,
        "id": 1,
        "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
        "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
      }
    * Connection #0 to host jsonplaceholder.typicode.com left intact
    ]200

------------------------------------------------------------------------------





------------------------------------------------------------------------------
[참고 사이트]
------------------------------------------------------------------------------

https://git-scm.com/

https://kkh0977.tistory.com/4446

------------------------------------------------------------------------------
 
 

 

반응형
Comments