title: What is the difference between HTTP parameters and HTTP headers?
body: <p>I read <a href="https://stackoverflow.com/questions/18208463/difference-between-parameters-and-http-headers">this</a> question but it didn't answer my question. </p>
  
  <p>To me Headers and Parameters are both dictionaries with the difference that headers is <code>[String : String]</code> while Parameters is <code>[String : AnyObject]?</code> and so if your parameters are also Strings then you <em>could</em> send them within the headers (while using a 'x-' prefix to signify they aren't standard headers) which is a common but not good practice. </p>
  
  <ul>
  <li>Is that correct?</li>
  <li>Are there other difference between <code>headers</code> and <code>parameters</code>?</li>
  <li>What kind of other non-String types would you be sending using <code>parameters</code>?</li>
  </ul>
  
  <p><strong>Alamofire <code>Request</code> method</strong></p>
  
  <pre><code>public func request(
          method: Method,
          _ URLString: URLStringConvertible,
            parameters: [String: AnyObject]? = nil,
            encoding: ParameterEncoding = .URL,
            headers: [String: String]? = nil)
          -&gt; Request
      {
          return Manager.sharedInstance.request(
              method,
              URLString,
              parameters: parameters,
              encoding: encoding,
              headers: headers
          )
      }
  </code></pre>
  
  <p>As an example I have seen people passing <code>["x-ios-version" : UIDevice.currentDevice().systemVersion]</code> or build versions through headers</p>