前言

经过学习试着对课上内容做一个简单的总结。


示意图

HTTP 请求部分

  1. HTTP请求是指从客户端到服务器端的请求消息。包括:消息首行中,对资源的请求方法、资源的标识符及使用的协议。
    HTTP发送请求信息内容:
    1) 请求行:是一个ASCII文本行,由三个标记组成--请求的HTTP方法、URL、HTTP版本,之间用空格分开{GET /lovobook/index.html HTTP/1.0};
    2) 请求头:HTTP协议使用HTTP头来传递请求的元信息。HTTP头是一个用冒号分隔的名称/值对,冒号前面是HTTP头发名称,后面是HTTP的值;
    3) 空行: 发送回车符和退行,通知服务器一下不再有请求头;
    4) 消息体:  HTTP请求中带有查询字符串时,如果是GET方法,查询字符或表单数据附加值请求行中,则消息体中就没有内容;如果是POST方法,查询字符串或表单数据及添加在消息体中。
    
  2. 用 Chrome 发请求
    打开 Network
    地址栏输入网址
    在 Network 点击,查看 request,点击「view source」
    点击「view source」
    可以看到请求的前三部分了
    如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到

HTTP 响应部分

  1. HTTP回送响应信息内容:
    1) 状态行:以一个状态行开头。状态行有HTTP协议版本、响应状态码和响应描述组成,之间用空格分隔;
    2) 响应头:与请求头一样;
    3) 空白行:最后一个响应头之后是一个空行,发送回车符和退行,表明以下不再有响应头;
    4) 消息体:要发送回BS的HTTP文档或其它要显示的内容等。Web服务器把要发送给客户端的文档信息放在消息体中。
    
  2. 用 Chrome 查看响应
    打开 Network
    输入网址
    选中第一个响应
    查看 Response Headers,点击「view source」,点击「view source」,点击「view source」
    你会看到响应的前两部分
    查看 Response 或者 Preview,你会看到响应的第 4 部分

如何使用 curl 命令

  1. curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE及LDAP等协议。curl支持HTTPS认证,并且支持HTTP的POST,PUT等方法,FTP上传,kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。

  2. curl的常用选项:
    复制代码
    1 -A/–user-agent 设置用户代理发送给服务器,即告诉服务器浏览器为什么
    2 -basic 使用HTTP基本验证
    3 –tcp-nodelay 使用TCP_NODELAY选项
    4 -e/–referer 来源网址,跳转过来的网址
    5 –cacert 指定CA证书 (SSL)
    6 –compressed 要求返回是压缩的形势,如果文件本身为一个压缩文件,则可以下载至本地
    7 -H/–header 自定义头信息传递给服务器
    8 -I/–head 只显示响应报文首部信息
    9 –limit-rate 设置传输速度
    10 -u/–user <user[:password]>设置服务器的用户和密码
    11 -0/–http1.0 使用HTTP 1.0

  3. 示例
    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

 
Next →