189 8069 5689

Web安全基础知识-创新互联

HTTP请求与响应 请求

HTTP请求包括三部分,分别是请求行(请求方法)、请求头(消息报头)和请求正文。

创新互联建站-专业网站定制、快速模板网站建设、高性价比遂平网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式遂平网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖遂平地区。费用合理售后完善,十载实体公司更值得信赖。

HTTP请求行的第一行即为请求行,请求行由三部分组成,该行的第一部分表示请求方法;该行的第二部分用来说明请求的是该域名根目录下的哪一个文件;该行的最后一部分说明使用的是哪一个HTTP版本。

第二行至空白行为HTTP中的请求头(也被称为消息头)。其中,HOST代表请求的主机地址,User-Agent代表浏览器的标识。请求头由客户端自行设定。

HTTP请求的最后一行为请求正文,请求正文是可选的,它最常出现在POST请求方法中。

响应

HTTP响应也由三部分组成,分别是响应行、响应头(消息报头)和响应正文(消息主题)。

HTTP响应的第一行为响应行,其中包含HTTP版本、状态码以及消息OK(成功显示OK)

第二行至末尾的空白行为响应头,由服务器向客户端发送。

消息报头之后是响应正文,是服务器向客户端发送的HTML数据。

HTTP请求方法

GET方法用于获取请求页面的指定信息(以实体的格式)。如果请求资源为动态脚本(非HTML),那么返回文本是Web容器解析后的HTML源代码,而不是源文件。例如请求index.php,返回的不是index.php的源文件,而是经过解析后的HTML代码。

在服务器端脚本语言中可以选择性地接收参数,一般都是由开发者内定好的参数项目才会接收,比如开发者只接收id参数,若加了其他参数项,服务器端脚本不会处理加入的其他内容,只接收id参数项,并且去查询数据,最终向客户端发送解析过的HTML数据。

HEAD方法除了服务器不能在响应里返回消息主体外,其他都与GET方法相同。此方法经常被用来测试超文本链接的有效性、可访问性和最近的改变。编写扫描工具时,就常用此方法,因为只测试资源是否存在,而不用返回消息主体,所以速度是最快的。

POST方法与GET方法相似,大的区别在于GET方法没有请求内容,而POST是有请求内容的。POST请求最多用于向服务器发送大量的数据。GET虽然也能发送数据,但是长度有限制,并且GET请求会将发送的数据显示在浏览器端,而POST不会,所以安全性较高一些。

PUT方法用于请求服务器把请求中的实体存储在请求资源下,如果请求资源已经在服务器中存在,那么将会用此请求中的数据替换原先的数据,作为指定资源的最新修改版。如果请求指定的资源不存在,将会创建这个资源。通常情况下,服务器都会关闭PUT方法,因为它会为服务器建立文件,属于危险的方法。

DELETE方法用于请求源服务器删除请求的指定资源。服务器一般都会关闭此方法,因为客户端可以进行删除文件操作,属于危险方法。

TRACE方法用于激发一个远程的应用层的请求消息回路,回显服务器收到的请求。TRACE方法允许客户端去了解数据被请求链的另一端接收情况,并且利用那些数据信息去测试或诊断。此方法非常少见。

CONNECT,HTTP1.1协议规范保留了CONNECT方法,此方法是为了用于能动态切换到隧道的代理。

OPTIONS方法用于请求获得由URI标识的资源在请求/响应的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取集体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能。

HTTP状态码

1xx:信息提示,表示请求已被成功接收,继续处理。其范围为100-101。

2xx:成功,服务器成功处理了请求。其范围为200-206。

3xx:重定向,用于告诉客户端访问的资源已被移动,并告诉客户端新的资源地址位置。浏览器将重新对新资源发起请求。其范围为300-305。

4xx:客户端错误,其范围为400-415。

5xx:服务器错误,其范围为500-505。

200:客户端请求成功。

302:重定向。

400:客户端请求语法错误。

401:请求未经授权。

403:服务器收到请求,但拒绝服务。

404:请求资源不存在。

500:服务器内部错误。

503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

HTTP头部信息

HTTP头由四部分组成,分别是请求头、响应头、普通头、实体头。

请求头

请求头只出现在HTTP请求中,请求报头允许客户端向服务器端传递请求的附加信息和客户端自身的信息。

Host请求报头主要用于指定被请求资源的Internet主机和端口号。

User-Agent请求报头允许客户端将它的操作系统、浏览器和其他属性告诉服务器。

Referer包含一个URL,代表上一跳URL。

Cookie是一段文本,用来表示请求者身份。

Range可以请求实体的部分内容,多线程下载一定会用到此请求头(表示头500字节:bytes=0~499,表示第二个500字节:bytes=500~999,表示最后500字节:bytes=-500,表示500字节以后的范围:bytes=500-)

x-forward-for即XFF头,它代表请求端的IP,可以有多个,中间以逗号隔开。

Accept请求报头域用于指示客户端接收哪些MIME类型的信息。

Accept-Charset请求报头域用于指定客户端接收的字符集。

响应头

响应头是服务器根据请求向客户端发送的HTTP头。

Server,服务器所使用的Web服务器名称,如Server:Apache/1.3.6(Unix),可通过查看此头,探测服务器名称。所以建议在服务器端修改此头的信息。

Set-Cookie,向客户端设置Cookie,通过此头可以看到服务器向客户端发送的Cookie信息。

Last-Modified,服务器通过这个头告诉浏览器,资源的最后修改时间。

Location,服务器通过这个头告诉浏览器去访问哪个页面,浏览器接收到这个请求之后,通常会立刻访问Location头指向的页面。这个头通常配合302状态码使用。

Refresh,服务器通过Refresh头告诉浏览器定时刷新浏览器。

普通头

在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息。

实体头

请求和响应消息都可以传送一个实体头。实体头定义了关于实体正文和请求所标识的资源的元信息。元信息也就是实体内容的属性,包括实体信息类型、长度、压缩方法、最后一次修改时间等。常见的实体头如下。

Content-Type实体头用于向接收方指示实体的介质类型。

Content-Encoding头被用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。

Content-Length实体报头用于指明实体正文的长度,以字节方式存储的十进制数字表示。

Last-Modified实体报头用于指示资源的最后修改日期和时间。

HTTP协议与HTTPS协议的区别

HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密传输协议。

HTTP与HTTPS协议使用的是完全不同的连接方式,HTTP采用80端口连接,而HTTPS则是443端口。

HTTPS协议需要到ca申请证书,一般免费证书很少,需要交费,也有些Web容器提供,而HTTP协议不需要。

HTTP连接相对简单,是无状态的,而HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,HTTPS要比HTTP更安全。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站题目:Web安全基础知识-创新互联
URL链接:http://jkwzsj.com/article/psiii.html

其他资讯