在C++代码中遇到:CString szHeaders = _T("Accept: */*\r\nUser-Agent:HttpClient\r\n");CString  szHeaders = _T("Accept: */*\r\nUser-Agent:HttpClient\r\nRange:bytes=390000-\r\n");CString szHeaders = _T("Content-Type: application/x-www-form-urlencoded\r\nAccept: */*\r\nUser-Agent:HttpClient\r\n");
这些都是什么意思呢?作用又是什么呢?区别???多谢各位指点。期待你的回答

解决方案 »

  1.   

    http://blog.csdn.net/gueter/archive/2007/03/08/1524446.aspx
    Host头域   Host头域指定请求资源的Intenet主机和端口号,必须表示请求url的原始服务器或网关的位置。HTTP/1.1请求必须包含主机头域,否则系统会以400状态码返回。   Referer头域   Referer 头域允许客户端指定请求uri的源资源地址,这可以允许服务器生成回退链表,可用来登陆、优化cache等。他也允许废除的或错误的连接由于维护的目的被 追踪。如果请求的uri没有自己的uri地址,Referer不能被发送。如果指定的是部分uri地址,则此地址应该是一个相对地址。   Range头域   Range头域可以请求实体的一个或者多个子范围。例如, 
      表示头500个字节:bytes=0-499 
      表示第二个500字节:bytes=500-999 
      表示最后500个字节:bytes=-500 
      表示500字节以后的范围:bytes=500- 
      第一个和最后一个字节:bytes=0-0,-1 
      同时指定几个范围:bytes=500-600,601-999   但是服务器可以忽略此请求头,如果无条件GET包含Range请求头,响应会以状态码206(PartialContent)返回而不是以200 (OK)。   User-Agent头域   User-Agent头域的内容包含发出请求的用户信息。 
      

  2.   

    o(∩_∩)o... 
    多谢你的指点哦。虽然还是有点朦胧感,不过我会继续理解的THANKS!!!!!
      

  3.   

    ///第1行:方法,请求的路径,版本
    m_sRequest += _T("GET ");
    m_sRequest += szObject;
    m_sRequest += _T(" HTTP/1.1");
        m_sRequest += _T("\r\n"); ///第2行:主机
        m_sRequest += _T("Host:");
    m_sRequest += szServerName;
        m_sRequest += _T("\r\n"); ///第3行:
    if(szReferer != NULL)
    {
    m_sRequest += _T("Referer:");
    m_sRequest += szReferer;
    m_sRequest += _T("\r\n");
    } ///第4行:接收的数据类型
        m_sRequest += _T("Accept:*/*");
        m_sRequest += _T("\r\n"); ///第5行:浏览器类型
        m_sRequest += _T("User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)");
        m_sRequest += _T("\r\n"); ///第6行:连接设置,保持
    m_sRequest += _T("Connection:Keep-Alive");
    m_sRequest += _T("\r\n"); ///第7行:Cookie.
    if(szCookie != NULL)
    {
    m_sRequest += _T("Set Cookie:0");
    m_sRequest += szCookie;
    m_sRequest += _T("\r\n");
    } CString sTemp;
    ///第8行:请求的数据起始字节位置(断点续传的关键)
    if(nTo > 0)
    {
    m_sRequest += _T("Range: bytes=");
    sTemp.Format("%I64d", nFrom);
    m_sRequest += sTemp;
    m_sRequest += _T("-");
    if(nTo > nFrom)
    {
    sTemp.Format("%I64d", nTo);
    m_sRequest += sTemp;
    } m_sRequest += _T("\r\n");
    } ///最后一行:空行
    m_sRequest += _T("\r\n");
      

  4.   

    非常感谢龙飞大哥的帮助,我提的每个问题,你都会给我点建议。真的很感谢你。同时也感谢skyful123的耐心解说。很详细,多谢你啦。我的疑惑也改解决啦。呵呵~~~~