Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove "Accept-Charset" header from response, generated by @ResponseBody [SPR-7316] #11974

Closed
spring-projects-issues opened this issue Jun 23, 2010 · 7 comments
Assignees
Labels
type: bug A general bug
Milestone

Comments

@spring-projects-issues
Copy link
Collaborator

allnightlong opened SPR-7316 and commented

I use @ResponseBody for ajax features in my app. Ussualy the answer is have only several vharacter length (answers like 'ok', 'fail', etc).
But whole http-response is very big due to Accept-Charset header overhead, like this:

Accept-Charset:big5, big5-hkscs, compound_text, euc-jp, euc-kr, gb18030, gb2312, gbk, ibm-thai, ibm00858, ibm01140, ibm01141, ibm01142, ibm01143, ibm01144, ibm01145, ibm01146, ibm01147, ibm01148, ibm01149, ibm037, ibm1026, ibm1047, ibm273, ibm277, ibm278, ibm280, ibm284, ibm285, ibm297, ibm420, ibm424, ibm437, ibm500, ibm775, ibm850, ibm852, ibm855, ibm857, ibm860, ibm861, ibm862, ibm863, ibm864, ibm865, ibm866, ibm868, ibm869, ibm870, ibm871, ibm918, iso-2022-cn, iso-2022-jp, iso-2022-jp-2, iso-2022-kr, iso-8859-1, iso-8859-13, iso-8859-15, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-9, jis_x0201, jis_x0212-1990, koi8-r, koi8-u, shift_jis, tis-620, us-ascii, utf-16, utf-16be, utf-16le, utf-32, utf-32be, utf-32le, utf-8, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, windows-31j, x-big5-solaris, x-euc-jp-linux, x-euc-tw, x-eucjp-open, x-ibm1006, x-ibm1025, x-ibm1046, x-ibm1097, x-ibm1098, x-ibm1112, x-ibm1122, x-ibm1123, x-ibm1124, x-ibm1381, x-ibm1383, x-ibm33722, x-ibm737, x-ibm834, x-ibm856, x-ibm874, x-ibm875, x-ibm921, x-ibm922, x-ibm930, x-ibm933, x-ibm935, x-ibm937, x-ibm939, x-ibm942, x-ibm942c, x-ibm943, x-ibm943c, x-ibm948, x-ibm949, x-ibm949c, x-ibm950, x-ibm964, x-ibm970, x-iscii91, x-iso-2022-cn-cns, x-iso-2022-cn-gb, x-iso-8859-11, x-jis0208, x-jisautodetect, x-johab, x-macarabic, x-maccentraleurope, x-maccroatian, x-maccyrillic, x-macdingbat, x-macgreek, x-machebrew, x-maciceland, x-macroman, x-macromania, x-macsymbol, x-macthai, x-macturkish, x-macukraine, x-ms932_0213, x-ms950-hkscs, x-mswin-936, x-pck, x-sjis_0213, x-utf-16le-bom, x-utf-32be-bom, x-utf-32le-bom, x-windows-50220, x-windows-50221, x-windows-874, x-windows-949, x-windows-950, x-windows-iso2022jp

I think, this header is useless, because accept-charset must be request, not response header. So consider removing it.


Affects: 3.0.3

Issue Links:

  • INT-3120 Set the "writeAcceptCharset" to false by default in StringHttpConverter within the http inbound gateway

Referenced from: commits 4504ab8, ccdd1a9

@spring-projects-issues
Copy link
Collaborator Author

Arjen Poutsma commented

Fixed!

@spring-projects-issues
Copy link
Collaborator Author

Albert van 't Hart commented

The behavior still exists in Spring Framework 3.0.4

This header can be bigger than 4 KB which can lead to client side problems or HTTP servers which will limit size on headers they accept (Apache 8KB).

For now I had to unset this HTTP response header using mod_headers to solve this problem,
but it would be nice if this can be fixed within the Spring Framework.

@spring-projects-issues
Copy link
Collaborator Author

Arjen Poutsma commented

There is now a 'writeAcceptCharset' property on the StringHttpMessageConverter. If you set that to false (the default is true), the header is no longer written.

See http://static.springsource.org/spring/docs/3.0.4.RELEASE/javadoc-api/org/springframework/http/converter/StringHttpMessageConverter.html#setWriteAcceptCharset(boolean)

@spring-projects-issues
Copy link
Collaborator Author

allnightlong commented

But why writeAcceptCharset=true is default behavior?

@spring-projects-issues
Copy link
Collaborator Author

Arjen Poutsma commented

It's only true on the client-side, on the server-side it should be disabled.

@spring-projects-issues
Copy link
Collaborator Author

Arjen Poutsma commented

Small correction on the above. The property writeAcceptCharset is true on the client-side (RestTemplate), while it's false when using the converter in @MVC. Unfortunately, it's also true when using the mvc XML namespace, while it shouldn't be. This is now fixed in SVN.

@kamshory
Copy link

kamshory commented Oct 28, 2019

On my case, I add

headers.add("Accept-charset", "utf-8");

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug A general bug
Projects
None yet
Development

No branches or pull requests

3 participants