前言
今天调试的时候用到了curl,所以这周就简单介绍一下curl的用法。
curl一般用来发送http请求,进行web调试,但是它还有更强大的功能。
--silent
curl默认是将下载文件输出到stdout,将进度信息输出到stderr。使用--silent可以不显示进度信息。将下载内容写入文件
使用-O可以将下载的数据写入到文件
-o:将文件保存为命令行中指定的文件名的文件中
-O:使用URL中默认的文件名保存文件到本地断点续传
使用-C可以指定本次下载的偏移量,即只下载某个点之后的数据,其中偏移量是以字节为单位的整数。如果想让curl自动推断出正确的续传位置,可以使用-C -
打印包头
通过-I或者-head可以只打印出HTTP头部信息设置cookie
使用--cookie或者-b "cookie;"/filename 选项来指定cookie,多个cookie使用分号分隔存储cookie
使用--cookie-jar可以将cookie保存到一个文件中网络限速
使用--limit-rate限制curl的下载速度,其中使用k和m作为单位显示详细信息
使用-v或者--trace可以获得更多连接的信息设置头部信息
使用-H "string"来设置http头的信息,可以使用多次设置请求方式
使用-X指定请求方式,常用的有POST,GET发送数据
-d "str=a&name=b",发送的数据中都是键值对的形式,key=value,多个键值对用&连接-
HTTP代理
代理其实就是一种介于客户端和服务器之间的桥梁,它可以是客户端,也可以是服务器。- 代理的作用
- 翻墙
对于直接访问不了的资源,可以使用代理服务器,通过访问代理服务器间接访问资源服务器。从而不受限制影响。 - 匿名访问
通过设置代理服务器,将自己的请求都集中到代理服务器,再在代理服务器上对包的结构更改,隐藏一些身份或者位置信息。 - 代理缓存
代理服务器可以缓存资源服务器上的资源,从而减轻资源服务器的压力,提高浏览的速度。 - 隐藏真实服务器
为了保护真实的服务器信息不被泄露,通过设置代理服务器转发请求进行访问。这样对外暴露的就只有代理服务器,而保护了真实的资源服务器的信息。
- 翻墙
- 代理方式
- 正向代理
正向代理就是通过在客户端设置,更改头部信息等方式来指定使用的代理,也就是主动的选择代理。 - 反向代理
反向代理是指请求发起的时候,访问的就是代理服务器,通过代理服务器的转发来实现资源的访问。nginx就是一种最常见的反向代理服务器。
- 代理的作用
-
HTTP协议
HTTP协议即超文本传输协议,它是一种通信协议,允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器- 打开一个网页可能需要发送多次请求
打开一个网页,首先就是发送当前的请求,然后得到返回的信息。在分析这些信息的时候,可能当前页面涉及到其他的一些信息,这时候浏览器会再去请求这些信息,直到拿到所有需要的资源。 - 状态码
1XX 提示信息 - 表示请求已被成功接收,继续处理
2XX 成功 - 表示请求已被成功接收,理解,接受
3XX 重定向 - 要完成请求必须进行更进一步的处理
4XX 客户端错误 - 请求有语法错误或请求无法实现
5XX 服务器端错误 - 服务器未能实现合法的请求 - cookie
cookie其实就是缓存在用户本地的一个文件,其中包括少量用户的信息,用来简化用户的操作,以及方便用户的使用。
如果cookie中保存了用户的登录信息,一旦这个cookie被其他人截取获得,那么那个人就可以使用这个cookie冒充用户登录对应的网站。
- 打开一个网页可能需要发送多次请求