web请求流程与http方法剖析

web请求流程与http方法剖析

目录

web请求流程与http方法剖析

http请求与响应

HTTP超文本传输协议

请求消息头(header)

http方法,URL,cookie,状态码

HTTP方法(可以用于安全测试)

概念

知识点

静态 动态语言区别

3.3.1 常见的脚本语言有那些

3.3.1 常见的数据库有那些

3.3.1 常见的数据库与脚本语言搭配

3.3.1 系统、脚本语言、中间件如何组合

3.3.1 渗透测试过程中如何查看对方网站平台


http请求与响应

HTTP超文本传输协议

是今天所有WEB应用程序使用的通信协议

使用一种用于消息的模型:客户端发出一条请求,服务端返回一条相应消息,该协议基本不需要连接,虽然HTTP使用有状态的TCP协议作为他的传输机制,但是每次请求与响应都会自动完成,并且有可能使用不同的TCP连接

请求消息头(header)

GET+页面     请求这个页面内容

或POST     表示提交

HTTP/1.1 协议的版本

1.1版本必须使用Host请求头

HOST+域名或者IP地址

Conection   close或者keep    close更好

获取到数据之后 服务器与客户断开为 close

keep用户量大会出现问题

Cache-control

用于向浏览器传送缓存指令

若没有则为no-cache

其他为有

Upgrade -Insecure-Requests:1

用于自动升级请求从HTTP升级到HTTPS,起到过渡作用,解决安全性问题

内容账户密码都是加密的,抓包都是加密数据包

Use-Agent

表示本机操作系统内核版本,浏览器等信息

可能有Mozilla,因为历史浏览器遗留问题

Accept

表示浏览器支持的MIME类型

若*/*则表示支持任何类型

优先顺序从左到右

如果服务端没有客户端需要的类型,406错误

0.8后面没有则可以任意类型

MIME类型分类

Text:用于标准化表示文本信息,文本消息可以是多重字符集或格式的

text/html:表示html文档

applicition:表示传输应用程序数据或者二进制数据

application/xhtml+xml

表示xhtml文档

application/xml

表示xml文档

Refer

到目标的页面之前一开始的起始页面

防下载,盗链

可以判断非法链接

ACCEPT-Encoding

压缩字段,代表请求的页面是压缩的

展示效果好

服务器压力大

ACCEPT-Language

优先语言

zh-cn简体中文

zh中文

从0到1优先级从小到大,0为不接受

Cookie

登录时用到,用户信息内容可能存在本地Cookie

x_FORWARDED_FOR

是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端的最原始的IP地址的一个请求头字段

突破阿里云云WARF

加127.0.0.1,假装是本地访问,不会被拦截

Authorization

为一种内置HTTP身份验证向服务器提交证书

Origin

指出请求的域

响应消息头

http/1.1 200 ok

可以访问

Server

对方服务器型号

Data

日期

与缓存有关,并不同步

Connect-type

请求和返回类型,还有编码格式

Expires

控制缓存失效时间,指出响应内容已经过期

Pragmar

用于向浏览器传送缓存指令,指示浏览器不要将响应保存在缓存中

例如no-cache

Cache-control

缓存控制

X—Powered By

使用的框架

Vary:Accept-Encoding

表示网站启用了GZip压缩

Content_Length

HTML大小

ETag

浏览器根据HTTP请求的ETag验证请求资源是否变化

未变化

返回304 Not Modified响应,并且紫圆葱浏览器缓存中读取,这样就不必再次下载请求

Location

说明重定向访问的目标

WWW-Authenticate

用在带401状态码响应中,提供与服务器所持的身份验证有关的信息

跟服务器的身份验证有关

X-Fram-Options

指示浏览器框架是否以及如何加载当前响应

http方法,URL,cookie,状态码

HTTP方法(可以用于安全测试)

get

请求获取某一资源

post

提交表单

opptions

返回服务器各种信息

put

生成上传文件数据包

move

改名数据包

copy

复制数据包

delete

删除数据

propfind

生成返回有浏览目录权限的内容目录的数据包,最后点提交数据包把生成的数据包提交到服务器

URL

web资源唯一标识符,可通过它获取其标识的资源

默认80端口,写在域名后

?id=1 取出数据库id为1的数据返回

cookie

概念

HTTP是无状态协议,客户端和服务器交换数据完毕就会断开连接,再请求,再连接,这就造成服务器单从网络连接上无法知道用户身份

为了解决,每次有新用户来的时候,就给它发一个身份证,下次访问就知道如何处理了

本质是一个很小的文本文件,储存在用户机器上

会话cookie

临时

持久cookie

可以设置有效时间

属性

域domain

可以控制哪些站点可以使用

路径PATH

可以为服务器特定文档指定cookie

secure

只能在HTTPS协议加密情况下才会发送

第三方cookie

cookie的域域地址栏中的域不匹配

通常用在第三方广告网站,为了追踪记录收集浏览习惯

状态码

1XX

提供信息

2XX

请求被成功提交

3XX

客户端被重定到其他资源

4XX

请求包含某种错误

5XX

服务器执行请求遇到错误

特殊状态码

100Continue

表示已经收到请求消息头

200OK

成功提交请求

201Created

put请求已经成功提交

301Moved Permanently

将浏览器永久重定向另外一个在Location消息头中制定的URL ,之后的客户端使用新的URL替换原有的

302found

恢复原始URL

304NOT Modifide

使用缓存中保存的所请求的资源的副本

400 Bad Request

提交了一个无效的HTTP请求

401 Unauthorized

HTTP身份验证

403 Forbidden

不管是否通过身份验证,禁止任何人访问被请求资源,主页没有配置

404 Not Found

资源已经被删除

405 Method Not Allowed

指定URL不接受请求中使用的方法

413 Request Entity Too Large

请求主体过长

414 Request URI Too long

请求中URL过长

500 Internal Server Error

服务器执行请求时遇到错误

仔细检查响应内容

503Service Unavaiable

web服务器正常,应用程序无法响应

检查网关,服务器,中间件

HTTPS

使用普通非加密TCP作为传输机制,安全传输机制是安全套接层SSL

http身份验证

Basic

请求消息头中随每条信息以Base64编码字符串形式发送用户证书

NTLM

NTLMV2 与Kerberos验证体系

Digest

响应式机制

web应用程序编码

URL编码(许多工具都可以转换)

%3d

=

%25

%

%20和+

空格

%0a

换行

%00

空字节

Unicode编码

HTML编码

跨站脚本漏洞时发挥作用

Base64

十六进制编码

远程和序列化框架

知识点

静态 动态语言区别

动态语言:服务端和客户端代码不一致(如 html)

静态语言:服务端和客户端代码一致(如: asp,php,aspx,jsp)

3.3.1 常见的脚本语言有那些

asp 、php、 aspx、 jsp、 cgi、 war、 do、 py、 pl

3.3.1 常见的数据库有那些

access mysql mssql(sqlserver) oracle postsql db2

3.3.1 常见的数据库与脚本语言搭配

asp+access,asp+mssql,php+mysql,aspx+mssql aspx+oracle,jsp+oracle, jsp+mssql 等

3.3.1 系统、脚本语言、中间件如何组合

Windows2003/2008/2012+asp、aspx、php+iis6.0/7.0+7.5

Apache+Windows/Linux+PHP Windows/Linux+Tomcat+JSP

3.3.1 渗透测试过程中如何查看对方网站平台

1、工具(RASS、天镜、NMAP、X-SCAN) 2、第三方平台(seo.chinaz.com) 3、通过 ping 观看 TTL 值

发布了40 篇原创文章 · 获赞 3 · 访问量 483

猜你喜欢

转载自blog.csdn.net/weixin_43079958/article/details/105151893