CouchDB-컬 & 이불

cURL 유틸리티

cURL 유틸리티는 CouchDB와 통신하는 방법입니다.

지원되는 프로토콜 (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP 또는 FILE) 중 하나를 사용하여 서버에서 데이터를 전송하는 도구입니다. 이 명령은 사용자 상호 작용없이 작동하도록 설계되었습니다. cURL은 프록시 지원, 사용자 인증, ftp 업로드, HTTP 게시, SSL (https :) 연결, 쿠키, 파일 전송 재개 등과 같은 유용한 트릭을 제공합니다.

cURL 유틸리티는 UNIX, Linux, Mac OS X 및 Windows와 같은 운영 체제에서 사용할 수 있습니다. 사용자가 명령 줄에서 바로 HTTP 프로토콜에 액세스 할 수있는 명령 줄 유틸리티입니다. 이 장에서는 cURL 유틸리티 사용 방법을 설명합니다.

cURL 유틸리티 사용

cURL 유틸리티를 사용하여 아래에 표시된대로 cURL 다음에 웹 사이트 주소를 입력하여 웹 사이트에 액세스 할 수 있습니다.

curl www.tutorialspoint.com/

기본적으로 cURL 유틸리티는 요청 된 페이지의 소스 코드를 반환합니다. 이 코드는 터미널 창에 표시됩니다.

cURL 유틸리티 옵션

cURL 유틸리티는 작업 할 수있는 다양한 옵션을 제공하며 cURL 유틸리티 도움말에서 볼 수 있습니다.

다음 코드는 cURL 도움말의 일부를 보여줍니다.

$ curl --help
Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
      --anyauth Pick "any" authentication method (H)
   -a/--append Append to target file when uploading (F/SFTP)
      --basic Use HTTP Basic Authentication (H)
      --cacert <file> CA certificate to verify peer against (SSL)
-d/--data <data> HTTP POST data (H)
      --data-ascii <data> HTTP POST ASCII data (H)
      --data-binary <data> HTTP POST binary data (H)
      --data-urlencode <name=data/name@filename> HTTP POST data
urlencoded (H)
      --delegation STRING GSS-API delegation permission
      --digest Use HTTP Digest Authentication (H)
      --disable-eprt Inhibit using EPRT or LPRT (F)
      --disable-epsv Inhibit using EPSV (F)

   -F/--form <name=content> Specify HTTP multipart POST data (H)
      --form-string <name=string> Specify HTTP multipart POST data (H)
      --ftp-account <data> Account data to send when requested by server
(F)
      --ftp-alternative-to-user <cmd> String to replace "USER [name]" (F)
      --ftp-create-dirs Create the remote dirs if not present (F)
      --ftp-method [multi cwd/no cwd/single cwd] Control CWD usage (F)
      --ftp-pasv Use PASV/EPSV instead of PORT (F)

   -G/--get Send the -d data with a HTTP GET (H)

   -H/--header <line> Custom header to pass to server (H)
   -I/--head Show document info only
   -h/--help This help text
      --hostpubmd5 <md5> Hex encoded MD5 string of the host public key.
(SSH)
   -0/--http1.0 Use HTTP 1.0 (H)
      --ignore-content-length Ignore the HTTP Content-Length header
   -i/--include Include protocol headers in the output (H/F)

   -M/--manual Display the full manual

   -o/--output <file> Write output to <file> instead of stdout
      --pass <pass> Pass phrase for the private key (SSL/SSH)
      --post301 Do not switch to GET after following a 301
redirect (H)
      --post302 Do not switch to GET after following a 302
redirect (H)
   -O/--remote-name Write output to a file named as the remote file
      --remote-name-all Use the remote file name for all URLs
   -R/--remote-time Set the remote file's time on the local output
   -X/--request <command> Specify request command to use
      --retry <num> Retry request <num> times if transient problems
occur
      --retry-delay <seconds> When retrying, wait this many seconds
between each
      --retry-max-time <seconds> Retry only within this period
   -T/--upload-file <file> Transfer <file> to remote site
      --url <URL> Set URL to work with
   -B/--use-ascii Use ASCII/text transfer

CouchDB와 통신하는 동안 cURL 유틸리티의 특정 옵션이 광범위하게 사용되었습니다. 다음은 CouchDB에서 사용하는 것을 포함하여 cURL 유틸리티의 몇 가지 중요한 옵션에 대한 간략한 설명입니다.

-X 플래그

(HTTP) HTTP 서버와 통신 할 때 사용되는 사용자 지정 요청 방법을 지정합니다. 지정된 요청은 달리 사용 된 방법 대신 사용됩니다 (기본값은 GET). 자세한 내용과 설명은 HTTP 1.1 사양을 참조하세요.

(FTP) ftp로 파일 목록을 수행 할 때 LIST 대신 사용할 사용자 정의 FTP 명령을 지정합니다.

-H

(HTTP) 웹 페이지를 가져올 때 추가 헤더가 사용됩니다. cURL이 사용하는 내부 헤더 중 하나와 동일한 이름을 가진 사용자 정의 헤더를 추가하면 내부 헤더 대신 외부에서 설정된 헤더가 사용됩니다. 이를 통해 cURL이 일반적으로하는 것보다 더 까다로운 작업을 할 수 있습니다. 수행중인 작업을 완벽하게 알지 못한 상태에서 내부적으로 설정된 헤더를 바꾸면 안됩니다. 내부 헤더를 콜론 오른쪽에 내용이없는 헤더로 바꾸면 해당 헤더가 표시되지 않습니다.

cURL은 추가 / 교체하는 각 헤더가 적절한 줄 끝 마커와 함께 전송되도록합니다. 헤더 내용의 일부로 추가하거나 무질서한 것에 줄 바꿈이나 캐리지 리턴을 추가해서는 안됩니다.

-A /-user-agent 및 -e /-referer 옵션도 참조하십시오.

이 옵션은 여러 헤더를 추가 / 교체 / 제거하기 위해 여러 번 사용할 수 있습니다.

-d 플래그

이 cURL 플래그를 사용하면 사용자가 양식에 입력하여 제출 한 것처럼 HTTP POST 요청과 함께 데이터를 서버에 보낼 수 있습니다.

Example

웹 사이트가 있고 그 웹 사이트에 로그인하거나 아래와 같이 cURL 유틸리티의 –d 플래그를 사용하여 웹 사이트로 일부 데이터를 보내려고한다고 가정합니다.

curl -X PUT http://mywebsite.com/login.html -d userid=001 -d password=tutorialspoint

다음과 같은 포스트 청크를 보냅니다. "userid=001&password=tutorialspoint". 마찬가지로 -d 플래그를 사용하여 문서 (JSON)를 보낼 수도 있습니다.

-o 플래그

이 플래그를 사용하여 cURL은 요청의 출력을 파일에 씁니다.

Example

다음 예제는 -o cURL 유틸리티의 플래그.

$ curl -o example.html www.tutorialspoint.com/index.htm 
% Total % Received % Xferd Average Speed Time Time Time Current 
      Dload Upload Total Spent Left Speed
100 81193 0 81193 0 0 48168 0 --:--:-- 0:00:01 --:--:--
58077

그러면 tutorialspoint.com 홈페이지의 소스 코드를 가져와 example.com이라는 파일을 생성하고 example.html이라는 파일에 출력을 저장합니다.

다음은 example.html.

-영형

이 플래그는 다음과 유사합니다. –o, 유일한 차이점은이 플래그를 사용하면 요청 된 URL과 동일한 이름의 새 파일이 생성되고 요청 된 URL의 소스 코드가 여기에 복사됩니다.

Example

다음 예제는 -O cURL 유틸리티의 플래그.

$ curl -O www.tutorialspoint.com/index.htm
% Total % Received % Xferd Average Speed Time Time Time Current
      Dload Upload Total Spent Left
Speed
100 81285 0 81285 0 0 49794 0 --:--:-- 0:00:01 --:--:--
60077

index.htm이라는 이름의 새 파일을 생성하고 그 안에 tutorialspoint.com의 인덱스 페이지 소스 코드를 저장합니다.

안녕하세요 CouchDB

설치된 CouchDB 인스턴스에 GET 요청을 보내 CouchDB의 홈페이지에 액세스 할 수 있습니다. 먼저 Linux 환경에 CouchDB를 설치했고 성공적으로 실행 중인지 확인한 후 다음 구문을 사용하여 CouchDB 인스턴스에 get 요청을 보냅니다.

curl http://127.0.0.1:5984/

그러면 CouchDB가 버전 번호, 공급 업체 이름 및 소프트웨어 버전과 같은 세부 정보를 지정하는 아래와 같은 JSON 문서가 제공됩니다.

$ curl http://127.0.0.1:5984/
{
   "couchdb" : "Welcome",
   "uuid" : "8f0d59acd0e179f5e9f0075fa1f5e804",
   "version" : "1.6.1",
   "vendor" : {
      "name":"The Apache Software Foundation",
      "version":"1.6.1"
   }
}

모든 데이터베이스 목록

문자열과 함께 가져 오기 요청을 보내서 생성 된 모든 데이터베이스 목록을 가져올 수 있습니다. "_all_dbs string ". 다음은 CouchDB의 모든 데이터베이스 목록을 가져 오는 구문입니다.

curl -X GET http://127.0.0.1:5984/_all_dbs

아래와 같이 CouchDB의 모든 데이터베이스 목록을 제공합니다.

$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator" , "_users" ]

데이터베이스 생성

다음 구문을 사용하여 PUT 헤더가있는 cURL을 사용하여 CouchDB에서 데이터베이스를 만들 수 있습니다.

$ curl -X PUT http://127.0.0.1:5984/database_name

예를 들어, 위의 구문을 사용하여 이름이있는 데이터베이스를 만듭니다. my_database 아래 그림과 같이.

$ curl -X PUT http://127.0.0.1:5984/my_database
{"ok":true}

확인

아래와 같이 모든 데이터베이스를 나열하여 데이터베이스가 생성되었는지 확인합니다. 여기에서 새로 생성 된 데이터베이스의 이름을 볼 수 있습니다."my_database" 목록에서

$ curl -X GET http://127.0.0.1:5984/_all_dbs

[ "_replicator " , "_users" , "my_database" ]

데이터베이스 정보 얻기

데이터베이스 이름과 함께 get 요청을 사용하여 데이터베이스에 대한 정보를 얻을 수 있습니다. 다음은 데이터베이스 정보를 가져 오는 구문입니다.

예를 들어 이름이 지정된 데이터베이스의 정보를 가져옵니다. my_database아래 그림과 같이. 여기에서 데이터베이스에 대한 정보를 응답으로 얻을 수 있습니다.

$ curl -X GET http://127.0.0.1:5984/my_database

{
   "db_name" : "my_database",
   "doc_count" : 0,
   "doc_del_count" : 0,
   "update_seq" : 0,
   "purge_seq" : 0,
   "compact_running" : false,
   "disk_size" : 79,
   "data_size" : 0,
   "instance_start_time" : "1423628520835029",
   "disk_format_version" : 6,
   "committed_update_seq" : 0
 }

이불

Futon은 CouchDB에 내장 된 웹 기반 관리 인터페이스입니다. CouchDB와 상호 작용할 수있는 간단한 그래픽 인터페이스를 제공합니다. 순진한 인터페이스이며 모든 CouchDB 기능에 대한 전체 액세스를 제공합니다. 다음은 그 기능의 목록입니다-

Databases −
  • 데이터베이스를 생성합니다.
  • 데이터베이스를 파괴합니다.
Documents −
  • 문서를 만듭니다.
  • 문서를 업데이트합니다.
  • 문서를 편집합니다.
  • 문서를 삭제합니다.

이불 시작

CouchDB가 실행 중인지 확인한 다음 브라우저에서 다음 URL을 엽니 다.

http://127.0.0.1:5984/_utils/

이 URL을 열면 아래와 같이 이불 홈페이지가 표시됩니다.

  • 이 페이지의 왼쪽에서 현재 CouchDB의 모든 데이터베이스 목록을 볼 수 있습니다. 이 그림에는 다음과 같은 데이터베이스가 있습니다.my_database, 시스템 정의 데이터베이스와 함께 _replicator_user.

  • 오른쪽에서 다음을 볼 수 있습니다.

    • Tools −이 섹션에서는 Configuration CouchDB를 구성하려면 Replicator 복제를 수행하고 Status CouchDB의 상태 및 CouchDB에서 수행 된 최근 수정 사항을 확인합니다.

    • Documentation −이 섹션에는 최신 버전의 CouchDB에 대한 전체 문서가 포함되어 있습니다.

    • Diagnostics − 여기에서 CouchDB의 설치를 확인할 수 있습니다.

    • Recent Databases − 여기에서 최근에 추가 된 데이터베이스의 이름을 찾을 수 있습니다.