经过学习试着对课上内容做一个简单的总结。
1) 请求行:是一个ASCII文本行,由三个标记组成--请求的HTTP方法、URL、HTTP版本,之间用空格分开{GET /lovobook/index.html HTTP/1.0};
2) 请求头:HTTP协议使用HTTP头来传递请求的元信息。HTTP头是一个用冒号分隔的名称/值对,冒号前面是HTTP头发名称,后面是HTTP的值;
3) 空行: 发送回车符和退行,通知服务器一下不再有请求头;
4) 消息体: HTTP请求中带有查询字符串时,如果是GET方法,查询字符或表单数据附加值请求行中,则消息体中就没有内容;如果是POST方法,查询字符串或表单数据及添加在消息体中。
1) 状态行:以一个状态行开头。状态行有HTTP协议版本、响应状态码和响应描述组成,之间用空格分隔;
2) 响应头:与请求头一样;
3) 空白行:最后一个响应头之后是一个空行,发送回车符和退行,表明以下不再有响应头;
4) 消息体:要发送回BS的HTTP文档或其它要显示的内容等。Web服务器把要发送给客户端的文档信息放在消息体中。
curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE及LDAP等协议。curl支持HTTPS认证,并且支持HTTP的POST,PUT等方法,FTP上传,kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。
curl的常用选项:
复制代码
1 -A/–user-agent
2 -basic 使用HTTP基本验证
3 –tcp-nodelay 使用TCP_NODELAY选项
4 -e/–referer
5 –cacert
6 –compressed 要求返回是压缩的形势,如果文件本身为一个压缩文件,则可以下载至本地
7 -H/–header
8 -I/–head 只显示响应报文首部信息
9 –limit-rate
10 -u/–user <user[:password]>设置服务器的用户和密码
11 -0/–http1.0 使用HTTP 1.0
示例
curl -s -v -H “Frank: xxx” – “https://www.baidu.com"
请求的内容为
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: /
Frank: xxx