curl介绍curl是一个运行在命令行上的http客户端。使用curl命令发起http请求并返回结果。相信很多开发者都喜欢使用图形界面工具(比如Postman)来进行API调试。但是我觉得了解curl命令行工具会给开发带来很大的帮助,可以让开发者更直观的理解http请求,也方便了开发过程中的沟通和交流。curl使用注意事项:windows系统没有curl命令。如果你想在Windows中使用它,你可以使用GitBash或Cygwin。curl[options][URL...]先尝试请求百度首页和一言API,不加任何参数。curlhttps://www.baidu.comcurlhttps://v1.hitokoto.cn/可以看到返回的信息是一串文本(string)。当请求内容为html(百度首页)时,返回html文本;当请求内容为JSONAPI(一研API)时,返回JSON文本。在浏览器中,浏览器根据文本内容渲染页面。使用不带任何参数的curl命令只是返回http的响应文本内容(后面会提到),如果想查看完整的http请求信息,可以加上-v参数。curl-vhttps://v1.hitokoto.cn/此时会打印出http请求的完整信息,分别是http的请求报文和响应报文。HTTP请求HTTP请求可以看作是向服务器发送一个字符串的过程,服务器收到后返回该字符串。发送给服务器的字符串称为请求消息,服务器返回的字符串称为响应消息。请求消息一个HTTP请求消息由四部分组成:请求行、请求头、空行和请求数据。请求行请求行由请求方法、URL和HTTP协议版本组成。例如,GET/index.htmlHTTP/1.1。HTTP请求方法包括GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE和CONNECT。请求头请求头由键/值对组成,每行一对,键和值之间用冒号分隔。常见的请求标头有:User-Agent:生成请求的浏览器类型。接受:客户端识别的内容类型列表。主机:请求的主机名。空行最后一个请求头之后是一个空行,发送回车换行通知服务器下面没有请求头了。请求数据请求数据不是用在GET方法中,而是用在POST方法中。响应消息响应消息由3部分组成:状态行、响应头和响应文本。状态行返回一个HTTP状态代码来描述所请求的资源。常见的状态码有200OK(请求成功)、403Forbidden(服务器收到请求但拒绝提供服务)、404NotFound(请求的资源不存在)。响应头与请求头相同,由键/值对组成,每行一对,键和值之间用冒号分隔。ResponseText响应的文本内容,即上面提到的curl命令不加-v参数时返回的内容。在上面的例子中,它们的具体位置如下>GET/HTTP/1.1(请求行)>Host:v1.hitokoto.cn(请求头)>User-Agent:curl/7.64.0(请求头)>Accept:*/*(请求头)>(空行)
