目录
HTTP
http文本传输协议(HyperText Transfer Protocol) ,遵循请求/响应(request/response)模型
url
标准格式:协议://服务器域名[:端口]/路径/[?查询]
-
协议
http or https
-
服务器域名
也可以是ip
-
端口
并非必须,若省略则是默认80端口
-
路径
目录or文件地址
-
查询
从?开始,提供参数名和参数值
http请求
请求行
请求方法 | 描述 |
---|---|
GET | 请求页面信息 |
HEAD | 返回响应行和响应头,无响应正文 |
POST | 向指定数据提交数据,可能导致新的资源建立和已有资源的修改 |
PUT | 传送数据,进行存储和替换 |
DELETE | 请求删除页面 |
CONNECT | 将连接改为管道方式的代理服务器 |
OPTIONS | 查看服务器性能 |
TRACE | 回显服务器请求,用于测试和诊断 |
请求方法 请求路径 协议版本
请求方法
请求头
包含许多有关客户端环境和请求正文的有用信息
Name | Content |
---|---|
Host | 服务器域名 or ip |
Cookie | 用户信息 |
User-Agent | 浏览器信息 |
Accept | 可接受的内容类型 |
Accept-Language | 优先选择的语言 |
等 | .. |
请求正文
负载
http响应
响应行
协议 状态码 状态消息 eg:HTTP/1.1 200 OK
状态码
分类 | 分类描述 |
---|---|
1XX | 信息,服务器收到请求,需要继续执行操作 |
2XX | success |
3XX | 重定向,需要进一步操作完成请求 |
4XX | 客户端错误 |
5XX | 服务器错误 |
具体看
[RFC(英文)]
-
200 成功:文件存在。
-
404 未找到:服务器中不存在该文件。
-
301 永久移动:请求的网页已永久移动到新位置,这是重定向到给定的URL。
-
302 临时移动:服务器目前从不同位置的网页响应请求。
-
303 查看其他位置:请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码。
-
401 未授权:访问此文件需要身份验证,对于需要登录的网页,服务器可能返回此响应。
-
403 禁止:请求有效但服务器拒绝响应。
-
429禁止:Too Many Requests超过了频次限制
-
500 服务器内部错误:服务器遇到错误,无法完成请求。
响应头
不能放在响应行中的附加响应信息 ,相关服务器的信息 ,对Request-URI所标识的资源进行下一步访问的信息
响应正文
Cookie
定义:
Cookie是由Web服务器发送到客户端(通常是用户的Web浏览器)的一小段数据。这个数据以键值对的形式存储,并且每次客户端发起HTTP请求时,浏览器会自动附带已存储的、与该特定网站相关的Cookie信息发送给服务器。
内容:
Cookie的内容可以包含各种类型的数据,例如用户ID、访问过的网页、购物车信息、用户设置等。由于安全性和隐私保护的原因,Cookie的大小有限制,且对于敏感信息通常需要加密处理。
用途:
- 会话管理:Cookie最常见的是用来维持用户的会话状态,比如在用户登录后,服务器通过设置一个包含用户ID的Cookie来记住这个用户已经登录,下次用户访问网站时,浏览器会自动带上这个Cookie,服务器就能识别出这是同一个用户,从而保持其登录状态。
- 个性化服务:Cookie可以记录用户的偏好设置,如语言选择、主题风格等,以便下次访问时直接提供个性化的服务。
- 追踪行为:一些网站利用Cookie收集用户在网站上的浏览历史、点击行为等数据,用于分析用户行为、优化网站功能或推送相关广告。
生命周期:
Cookie有有效期,分为会话级别的Cookie(浏览器关闭即失效)和持久化Cookie(设置了过期时间,即使关闭浏览器也会在硬盘上保留,直到过期或被手动删除)。
隐私和安全性:
由于Cookie可能涉及到用户隐私信息,因此现代浏览器都提供了控制Cookie的选项,用户可以选择接受所有Cookie、拒绝所有Cookie,或仅接受来自信任站点的Cookie。同时,开发者在设计和使用Cookie时也需要遵循相关的隐私政策和法律法规,确保用户数据的安全。
Session
实现原理
组成:
- session id 用户的唯一标识,随机生成
研究随机
- session file 存储session,文件名称:sess_Session_id
格式:sess_d3eom13a9r9pnfssaklnv
- Session data 保存序列化后的用户数据
PHP中的Session设置函数
session传输
-
通过cookie直接传输
-
当cookie被禁用时,通过url重写实现传输session
eg: http:<//www.ctf-wiki.com/test;sessionid=XXXXXXXX>
-
表单隐藏字段
- 不是很懂