httpプロトコルはSOAPプロトコル以前のように、おそらく最も一般的に使用されるWebリモーティングプロトコルフィールドです。httpプロトコルのサービスに基づいて、軽量かつ信頼性の高いトランスポートプロトコルが安らかとほぼ同義になったように、今日は、プロセスのhttpいくつかの関連する使用上の問題を挙げました。
- クロスドメイン
我々はまた、最も一般的に発生している、そこに、このようなゲートウェイサービスのCorsFilterの導入など多くのソリューションは、ある、またはドメイン名を指定すると、すべてのヘッダを解放します。
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("HEAD");
config.addAllowedMethod("GET");
config.addAllowedMethod("PUT");
config.addAllowedMethod("POST");
config.addAllowedMethod("DELETE");
config.addAllowedMethod("PATCH");
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
別の解決策は、nginxのように、プロキシサーバーを調整することです。
add_header 'Access-Control-Allow-Origin' '$http_origin';
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, PUT, POST, DELETE, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type,*';
- 中国のヘッダー
HTTPプロトコルでは、中国のヘッダをサポートしていません!!!
したがって、中国のヘッダ情報をトランスコードする必要が転送する、受信機は、復号化再。
Base64.encodeBase64String(origin.getBytes("utf-8"));
- 不足しているヘッダー
一つの問題は、リクエストヘッダは、パラメータrequest_user_idあり、遭遇した、認証サービスのインターセプタはrequest.getHeaderを見つけることができません。当初疑わapigateway問題、単なる前方見つけ、apigatewayコードを見て、無再プロキシリクエストなので、問題はありません。要求の再試行のIPアドレス(開始要求は、ドメイン名のアドレスです)、得られるヘッダー値を見つけ、入場ヘッダパラメータは、主に依存し
config.addAllowedHeaderのcorsFilter( " 「)、今設定されている私の息子を提供することができるはずの中国外のすべてのパラメータに加えてあります。
再ソートサービスリンク、DNSの-nginx-apigateway-目標、nginxのは、ヘッドにロックされています。nginxの内部設定は、すべてを許可しますが、下線のパラメータは無視されますされた制限nginxのがある(ピットああ!)
、再起動を、nginxのはhttpパラメータを調整下線パラメータを開くには、問題が解決されます。
underscores_in_headers on;