2023-05-12 2060 次
Nginx Web服務器,直接貼代碼,如果你的服務器也需要設置Nginx請求頭,可以直接使用。
在長期的網站建設和軟件開發過程種,生產環境的服務器運維服務中最常見的設置。
在服務器塊下的nginx.conf中添加以下參數
server {
listen 443;
server_name ds.v.com; # 駕駛
location / {
#Nginx配置
#Strict-Transport-Security響應頭缺失
add_header Strict-Transport-Security 'max-age=15552000';
#HTTP X-Permitted-Cross-Domain-Policies 響應頭缺失
add_header X-Permitted-Cross-Domain-Policies 'none';
#點擊劫持漏洞(X-Frame-Options)
add_header X-Frame-Options SAMEORIGIN;
#Referrer-Policy響應頭缺失
add_header Referrer-Policy "no-referrer";
#X-Content-Type-Options響應頭缺失
add_header X-Content-Type-Options nosniff;
#X-Download-Options響應頭缺失
add_header X-Download-Options 'noopen';
# Content-Security-Policy響應頭缺失
add_header Content-Security-Policy "script-src * 'unsafe-inline' 'unsafe-eval'";
#X-XSS-Protection響應頭缺失
add_header X-XSS-Protection '1;mode=block';
#會話cookie中缺少HttpOnly屬性
add_header Set-Cookie "Path=/; HttpOnly; Secure"
...
}
}
本次操作逐一排查,凡是新增的服務器都相應做了設置,以前老客戶的服務器之前都已經操作過,不在此次的范圍內。
已于昨日處理完畢,此次處理沒有影響服務器使用。
請求
請求,由客戶端向服務端發出,可以分為3部分內容:請求方法(Request Method) 、請求的網址( Request URL )、請求報文(Request message)
請求方法
常見的請求方法有兩種:GET和POST。
在瀏覽器中直接輸入 URL 并回車,這便發起了一個 GET 請求,請求的參數會直接包含到 URL里。例如,在百度中搜索 Python ,這就是一個 GET 請求,鏈接為 https://www. baidu.corn/s?wd=Pthon,其中 URL 中包含了請求的參數信息,這里參數 wd 表示要搜尋的關鍵字 。
POST 請求大多在表單提交時發起。比如,對于一個登錄表單,輸入用戶名和密碼后,點擊“登錄”按鈕,這通常會發起一個 POST請求,其數據通常以表單的形式傳輸,而不會體現在 URL中。
兩者區別
GET 請求中的參數包含在 URL 里面,數據可以在 URL 中看到,而 POST 請求的 URL 會包含這些數據,數據都是通過表單形式傳輸的,會包含在請求體中。
GET 請求提交的數據最多只有 1024 字節,而 POST 方式沒有限制。
一般來說,登錄時,需要提交用戶名和密碼,其中包含了信息,使用 GET 方式請求的話,密碼就會暴露在 URL 里面,造成密碼泄露,所以這里-以 POST 方式發送。上傳文件時,由于文件內容比較大,也會選用 POST 方式。
其他請求方式
請求報文
由請求行、請求頭、請求體組成
請求行
由請求方式和HTTP協議和版本組成
如:GET / HTTP/1.1
請求頭
請求頭,用來說明服務器要使用的附加信息,比較重要的信息有 Cookie 、Referer、User-Agent等。下面簡要說明一些常用的頭信息。
Accept
請求報頭域,用于指定客戶端可接受哪些類型的信息。
Accept-Language
指定客戶端可接受的語言類型。
Accept-Encoding
指定客戶端可接受的內容編碼。
Host
用于指定請求資源的主機 IP 和端口號,其內容為請求 URL 的原始服務器或網關的位置。從HTTP 1. 版本開始,請求必須包含此內容。
Cookie
也常用復數形式 Cookies ,這是網站為了辨別用戶進行會話跟蹤而存儲在用戶本地的數據。它的主要功能是維持當前訪問會話。例如,我們輸入用戶名和密碼成功登錄某個網站后,服務器會用會話保存登錄狀態信息,后面我們每次刷新或請求該站點的其他頁面時,會發現都是登錄狀態,這就是Cookies 的功勞。Cookies 里有信息標識了我們所對應的服務器的會話,每次瀏覽器在請求該站點的頁面時,都會在請求頭中加上 Cookies 并將其發送給服務器,服務器通過 Cookies 識別出是我們自己,并且查出當前狀態是登錄狀態,所以返回結果就是登錄之后才能看到的網頁內容。
Referer
此內容用來標識這個請求是從哪個頁面發過來的,服務器可以拿到這 信息并做相應的處理,如做來源統計、防盜鏈處理等。
User-Agent
簡稱 UA ,它是一個特殊的字符串頭,可以使服務器識別客戶使用的操作系統及版本 瀏覽器及版本等信息 在做爬蟲時加上此信息,可以偽裝為瀏覽器;如果不加,很可能會被識別出為爬蟲。
Content-Type
也叫互聯網媒體類型( Internet Media Type )或者 MIME 類型,在 HTTP協議消息頭中,它用來表示具體請求中的媒體類型信息。例如, text/html 代表 HTML 格式,image/gif 代表 GIF 圖片, application/json 代表JSON 類型,
在爬蟲中,如果要構造 POST 請求,需要使用正確的 Content-Type,并了解各種請求庫的各個參數設置時使用的是哪種 Content-Type,不然可能會導致 POST 提交后無法正常響應。
請求體
內容是 POST 請求中的表單數據,而對于 GET 請求,請求體則為空。
響應
響應,由服務端返回給客戶端,響應報文可以分為三部分:響應行( Response line )、響應頭( Response Headers )和響應體( Response Body)。
響應行
由HTTP版本響應、狀態碼、狀態描述組成。
如;HTTP/1.1 200 OK
響應狀態碼
表示服務器的響應狀態。
常見的狀態碼有:
200
請求成功
307
重定向
400
錯誤的請求
404
請求資源在服務器中不存在
500
服務器內部源代碼出現錯誤
狀態碼和錯誤原因如下圖:
響應頭
用來說明響應的數據
常用的響應頭如下:
Accept-Patch
指定服務器所支持的文檔補丁格式
Accept-Ranges
服務器所支持的內容范圍
Content-Disposition
對已知MIME類型資源的描述,瀏覽器可以根據這個響應頭決定是對返回資源的動作,如:將其下載或是打開。
Content-Encoding
響應資源所使用的編碼類型。
Content-Language
響就內容所使用的語言
Content-Length
響應消息體的長度,用8進制字節表示
Content-Type
當前內容的MIME類型
Date
此條消息被發送時的日期和時間(以RFC 7231中定義的"HTTP日期"格式來表示)
Expires
指定一個日期/時間,超過該時間則認為此回應已經過期
Server
服務器的名稱
響應體
就是網頁的代碼