PHP 3, PHP 4, PHP 5。自 PHP 4.3.0 起支持 https://
- http://example.com 
- http://example.com/file.html?var1=val1&var2=val2 
- http://user:password@example.com 
- https://example.com 
- https://example.com/file.html?var1=val1&var2=val2 
- https://user:password@example.com 
   允许通过 HTTP 1.0 使用 HTTP GET 方法对文件/资源进行只读访问。Host:
   报头也会通过请求发送出去以支持基于域名的虚拟主机。如果在 ini
   文件或者流上下文配置了 user_agent
   字符串,也会被包括在请求报头中。
  
| 警告 | 
| 当使用
SSL 时,Microsoft IIS 将违反协议不发送 close_notify 标记就关闭连接。PHP
将在到达数据尾端时报告 "SSL: Fatal Protocol Error"。要绕过此问题,应将
error_reporting 级别降低为不包括警告。PHP
4.3.7 及更高版本可以在当使用 https:// 封装协议打开流的时候检测出有此问题的
IIS 服务器并抑制警告。如果使用 fsockopen()
来创建一个 ssl:// 套接字,则需要自己检测并抑制警告信息。 | 
   自 PHP 4.0.5 起支持重定向。如果使用较早版本的 PHP 则需要在 URL
   末尾包括一个斜线。如果一定要知道文档所在的资源的
   url(在所有重定向被处理过之后),则需要处理从流返回的一系列响应报头信息。
  
   流允许访问资源的正文,报头部分保存在
   $http_response_header 变量中。自
   PHP 4.3.0 起,可以用
   stream_get_meta_data() 得到报头。
  
   HTTP 连接是只读的,不能将数据写入或者拷贝文件到 HTTP 资源。
  
注: 
    自 PHP 4.3.0 起开始支持 HTTPS,需要在编译时加入 OpenSSL 的支持。
   
   
  
   
表格 L-3. 上下文选项
| 名称 | 用法 | 默认值 | 
|---|
| method | GET、POST
       或任何其它被远程服务器支持的 HTTP 方式。 | GET | 
| header | 请求中要发送的附加的头信息。此选项中的值将覆盖其它值(例如
        User-agent:,Host: 和
        Authentication:)。 |  | 
| user_agent | 在 User-Agent: 头信息中要发送的值。此值仅用于没有在上面
        header 的上下文选项中指定 user-agent 时。 | php.ini 设置:user_agent | 
| content | 头信息之后要发送的附加数据。典型用于 POST 或 PUT 请求。 |  | 
| proxy | 以 URI 格式指定的代理服务器(例如
        tcp://proxy.example.com:5100)。 |  | 
| request_fulluri | 设置为 TRUE 时,建立请求时整个 URI 将被使用。(即
        GET http://www.example.com/path/to/file.html HTTP/1.0)。
        而这是一个非标准请求格式,某些代理服务器需要它。 | FALSE | 
| max_redirects | 连续重定向的最大值。从 PHP 5.1.0 开始存在。 | 20 | 
底层的套接字流(socket stream)上下文选项: 
    有可能通过底层传输(underlying transport)支持附加的上下文选项。对于
    http:// 流,参考
    tcp:// 传输的上下文选项。对于
    https:// 流,参考
    ssl:// 传输的上下文选项。