美文网首页
一点点关于HTTP的碎碎念

一点点关于HTTP的碎碎念

作者: YyzclYang | 来源:发表于2018-04-07 19:34 被阅读0次

    curl命令

    curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。

    语法

    curl [option] [url]

    常见的option

    -A/--user-agent <string>              设置用户代理发送给服务器
    -b/--cookie <name=string/file>    cookie字符串或文件读取位置
    -c/--cookie-jar <file>                    操作结束后把cookie写入到这个文件中
    -C/--continue-at <offset>            断点续转
    -D/--dump-header <file>              把header信息写入到该文件中
    -e/--referer                                  来源网址
    -f/--fail                                          连接失败时不显示http错误
    -o/--output                                  把输出写到该文件中
    -O/--remote-name                      把输出写到该文件中,保留远程文件的文件名
    -r/--range <range>                      检索来自HTTP/1.1或FTP服务器字节范围
    -s/--silent                                    静音模式。不输出任何东西
    -T/--upload-file <file>                  上传文件
    -u/--user <user[:password]>      设置服务器的用户和密码
    -w/--write-out [format]                什么输出完成后
    -x/--proxy <host[:port]>              在给定的端口上使用HTTP代理
    -#/--progress-bar                        进度条显示当前的传送状态
    

    详细的curl支持的option见此网页

    option可以同时选择多项进行使用。

    用法

    这里简述几种curl的用法。

    • 查看网页源代码
      直接在curl命令后加上网址,就可以查看网站的源代码。
      curl www.baidu.com

      查看网页源代码
    • 保存网页
      curl -o 文件名 www.baidu.com

    • 不显示下载进度信息
      curl -s -o 文件名 www.baidu.com

    • 显示下载进度信息
      curl -# -o 文件名 www.baidu.com

    还有很多curl的用法,可以自己去摸索,这里就不一一说明了。

    HTTP请求

    例如,先用curl命令提交一个请求,curl -s -v -H "Yyzcl: 123" -- "https://www.baidu.com",并得到了响应。

    HTTP请求
    图中红框之内的内容就是我们请求的内容,其格式和内容如下:
    1 动词 路径 协议/版本           GET / HTTP/1.1
    2 Host: www.baidu.com         Host: www.baidu.com
    2 User-Agent: curl/7.59.0     User-Agent: curl/7.59.0
    2 key1: value1                Accept: */*
    2 key2: value2                Yyzcl:123
    3                             
    4 要上传的数据                 (无,此命令无上传数据)
    

    如果用curl -X POST -d "Yyzcl" -s -v -H "YyzclYang: 123" -- "https://www.baidu.com"来请求,会得到以下结果。

    另一种请求
    会发现底下会提示成功上传了5个字节,这就是"Yyzcl"的内容。

    如何利用Chrome开发者工具查看请求

    首先摁F12来打开开发者工具,然后选到Network,这时候输入网站,就可以看到浏览器背后的请求。这里输入https://www.baidu.com/作为测试。

    利用开发者工具查看请求
    按照1234的顺序依次选取,就可以看到浏览器发出的请求了。

    HTTP响应

    还是利用curl命令提交一个请求,curl -s -v -H "Yyzcl: 123" -- "https://www.baidu.com",并得到了响应。

    HTTP响应
    我截取红框中的内容来进行说明。
    1 协议/版本号 状态码 状态解释
    2 Key1: value1
    2 Key2: value2
    2 Content-Length: 2443
    2 Content-Type: text/html
    3
    4 要下载的内容(网页的具体内容)
    

    状态码

    是在请求之后,服务器对浏览器的消息,具体每一个状态码的意思见HTTP状态码

    如何利用Chrome开发者工具查看响应

    和查看请求一样,同样摁F12调出开发者工具,在Network里查看,只不过响应是点击Response Headers->view source之后查看的。

    利用开发者工具查看响应
    图中红框内就是响应的内容。

    相关文章

      网友评论

          本文标题:一点点关于HTTP的碎碎念

          本文链接:https://www.haomeiwen.com/subject/rpzyhftx.html