服务器运维 yunwei

增加head头信息-请求头和响应头(全平台服务器)

2023-05-12 1916 次

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

服务器的名称

响应体

就是网页的代码

近期更新:
返回顶部