#HTTP核心概念梳理
前面有介绍过,我在检点东西回忆一下,又便于下面的学习。
1.状态码:记住这几个高频的:200:请求成功 301/302:重定向 403:无权限404:资源不存在 500:服务器内部错误
2.HTTP方法:GET:获取资源 POST:提交数据 HEAD:只获取响应头PUT/DELETE:上传/删除资源 (渗透中常见)
3. Cookie vs Session: Cookie:存在客户端(浏览器)的小文件 Session:存在服务器端的会话数据,通过SessionlD关联Cookie
#理解 HTTP 请求 / 响应结构
1. 打开浏览器,访问 http://192.168.217.128(注意IP地址要用自己虚拟机的)(你的 Nginx 页面)

2. 按 F12 → 「网络」标签,刷新页面,随便选一条请求

其中有许多地方我们一个一个了解一下。
「常规」部分:请求的基础信息
请求 URL:http://192.168.217.128/ → 你访问的 Nginx 网站地址
请求方法 :GET → 浏览器用 GET 方法获取页面(就是 “拉取资源” 的意思)
状态代码 :304 Not Modified → 服务器告诉你 “页面没变化,直接用浏览器本地缓存就行”,不是错误
远程地址 :192.168.217.128:80 → 你的 Nginx 服务器 IP 和端口
「响应标头」:服务器给浏览器的回复信息
Connection: keep-alive → 告诉浏览器保持连接复用,提高加载速度
Date → 服务器当前时间
Last-Modified → 页面文件最后修改时间,就是浏览器缓存校验的依据
Server: nginx/1.20.1 → 服务器用的是 Nginx 1.20.1 版本,这就是我们之前说的 “判断服务器类型” 的关键
「请求标头」:浏览器发给服务器的信息
Accept → 浏览器能接收的文件类型(HTML、图片、视频等)
Accept-Language → 对应的是显示语言
Cache-Control: max-age=0 → 浏览器告诉服务器 “我不要缓存,给我最新的文件”
Host: 192.168.217.128 → 告诉服务器你要访问的 IP / 域名
If-Modified-Since / If-None-Match → 浏览器用来校验缓存的字段,正是它们触发了304状态码
User-Agent → 你用的浏览器和系统信息(这里是 Edge 浏览器,Windows 10 系统)
你能看懂这些东西意思,你就会理解请求头和响应头给你的信息,在看张数据包的原图。

#curl 命令基础实战(另一种抓包方式)
我之前是在浏览器页面通过F12进行查看数据包的信息,接下来我们在终端进行查看包的信息。前面我忘记给你看一下响应,也就是页面前端代码。我补上在下面。

执行语句: curl http://127.0.0.1 能看见响应的前端代码

执行语句: curl -I http://127.0.0.1 只看响应头,不看内容

执行语句: curl -v http://127.0.0.1 显示完整的请求/响应头(抓包核心)

执行语句: curl -X P0sT -d "username=test&password=123" http://127.0.0.1/login 模拟POST请求(后面渗透常用) 只不过我目前的nginx还不能实现需要靶场代码。

执行语句: curl -b "sessionid=abc123" http://127.0.0.1 带Cookie请求 ,不过显现不出来,但往下看,下面语句会显示出。

执行语句: curl -v -b "sessionid=abc123" http://127.0.0.1 显示全面一些,就可以看出多一个 Cookie: sessionid=abc123,在图中圈住,因为上一句语法中添加了Cookie。


1万+

被折叠的 条评论
为什么被折叠?



