この文字列は、CherrPyResponseクラスで設定されているようです。
def __init__(self):
self.status = None
self.header_list = None
self._body = []
self.time = time.time()
self.headers = http.HeaderMap()
# Since we know all our keys are titled strings, we can
# bypass HeaderMap.update and get a big speed boost.
dict.update(self.headers, {
"Content-Type": 'text/html',
"Server": "CherryPy/" + cherrypy.__version__,
"Date": http.HTTPDate(self.time),
})
したがって、Responseオブジェクトを作成するときに、「Server」ヘッダーを更新して目的の文字列を表示できます。CherrPy応答オブジェクトのドキュメントから:
ヘッダー
応答のヘッダーを含む辞書。このdictには、ファイナライズフェーズの前であればいつでも値を設定できます。その後、CherryPyはheader_listの使用に切り替えます...
編集:作成するすべての応答オブジェクトでこの変更を行う必要がないようにするために、これを回避する簡単な方法の1つは、応答オブジェクトをラップすることです。たとえば、CherryPyのResponseを継承し、初期化後にヘッダーキーを更新する独自のResponseオブジェクトを作成できます。
class MyResponse(Response):
def __init__(self):
Response.__init__(self)
dict.update(self.headers, {
"Server": "MyServer/1.0",
})
RespObject = MyResponse()
print RespObject.headers["Server"]
次に、Responseオブジェクトを作成する必要がある場所で使用するためにオブジェクトを呼び出すことができ、サーバーヘッダーは常に目的の文字列に設定されます。