+ # Start with the defaults
+ result = {
+ 'X-Content-Type-Options': 'nosniff',
+ }
+
+ result = {**result, **(self.extra_headers)}
+
+ builtin_headers = {
+ 'Content-Type': self.content_type,
+ }
+
+ for key, value in builtin_headers:
+ if key in result:
+ raise Exception('Header "{}" defined twice'.format(key))
+ else:
+ result[key] = value
+
+ return tuple(sorted(result.items()))
+