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 −- 데이터베이스를 생성합니다.
- 데이터베이스를 파괴합니다.
- 문서를 만듭니다.
- 문서를 업데이트합니다.
- 문서를 편집합니다.
- 문서를 삭제합니다.
이불 시작
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 − 여기에서 최근에 추가 된 데이터베이스의 이름을 찾을 수 있습니다.