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(英文)]

MDN(中文)

  • 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传输

  1. 通过cookie直接传输

  2. 当cookie被禁用时,通过url重写实现传输session

    eg:http://www.ctf-wiki.com/test;sessionid=XXXXXXXX

  3. 表单隐藏字段

    • 不是很懂

Web之http学习笔记的更多相关文章

  1. Web安全测试学习笔记-DVWA-SQL注入-2

    接上一篇SQL注入的学习笔记,上一篇我通过报错信息得知后台数据库是MySQL(这个信息非常重要~),然后通过SQL注入拿到了用户表的所有行,其实我们还可以通过MySQL的特性来拿更多的信息. 1. 获 ...

  2. 《应用Yii1.1和PHP5进行敏捷Web开发》学习笔记(转)

    学习地址为: http://www.yiibook.com/book/agile_web_application_development_with_yii1.1_and_php5   1.建立应用程序 ...

  3. asp.net web.config的学习笔记

    原文地址:http://www.cnblogs.com/Bulid-For-NET/archive/2013/01/11/2856632.html 一直都对web.config不太清楚.这几天趁着项目 ...

  4. 《白帽子讲Web安全》- 学习笔记

    一.为何要了解Web安全 最近加入新公司后,公司的官网突然被Google标记为了不安全的诈骗网站,一时间我们信息技术部门成为了众矢之的,虽然老官网并不是我们开发的(因为开发老官网的前辈们全都跑路了). ...

  5. web前端-html学习笔记

    学习html最重要的是坚持.细心.多动手.慕课网<HTML+CSS基础课程>的笔记. 1.<h1>网站标题</h1> 如:<h1>腾讯网</h1& ...

  6. Web.py 框架学习笔记 - URL处理

    最近由于工作需要开始学习基于python的web应用框架web.py.为了方便学习,将学习心得逐日记下以便日后复习. URL 模板: web.py提供了一套url处理的模板,在python工程中,只需 ...

  7. Web开发入门学习笔记

    公司web项目终于要启动了,本以为django学习可以在实战中进行,结果最终使用了Drupal框架,好吧,那我们就PHP走起,买了本<细说PHP>,先跟着过一遍Web开发入门. HTTP协 ...

  8. 《Flask Web开发》学习笔记

    第一部分 Flask简介 前言:想熟练掌握一门web框架,为以后即将诞生的测试工具集做准备.为什么选择flask要做熟练掌握的一门框架,而不是其他的,最主要的原因是可以随意定制. 特别提醒:这本书的代 ...

  9. 活字格Web应用平台学习笔记1 - 下载安装,ready go

    今年有一个很重要的职业目标,就是好好学习活字格这个神器,争取在这两个月拿到活字格初级工程师的认证证书.给自己加个油,今天开始好好学习,好好做笔记. 第一步,下载安装 先去活字格官网:http://ww ...

  10. Web负载均衡学习笔记之实现负载均衡的几种实现方式

    0x00 概要 负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是Web负载均衡.根 ...

随机推荐

  1. Nacos 开源、自研、商业化三位一体战略解读

    简介: Nacos作为整个阿里云原生三位战略中的核心组成部分,我们在2018年以Configserver/VIPServer/Diamond为基础通过Nacos开源输出阿里十年沉淀的注册中心和配置中心 ...

  2. OpenKruise v0.10.0 版本发布:新增应用弹性拓扑管理、应用防护等能力

    简介: 阿里云开源的云原生应用自动化管理套件.CNCF Sandbox 项目 -- OpenKruise,今天发布 v0.10.0 新版本,这也会是 OpenKruise v1.0 之前的最后一个 m ...

  3. [GPT] export default {} 和 export {} 的区别

    在JavaScript ES6模块系统中,export default {} 和 export {} 有明显的区别: 1. export default {}: 这个语法用于导出一个默认的模块成员,它 ...

  4. [FAQ] pdf 无法导入 adobe AI, 分辨率 or 颜色缺失 or 字体缺失

    属于Adoge软件不支持问题, 可能是分辨率.字体等多种原因. https://www.codebye.com/adobe-reader-or-acrobat-opens-pdf-file-drawi ...

  5. [Cryptocurrency] (XMR) Monero GUI 连接远程节点 操作方式

    Monero 官网下载的钱包,在 高级设置 的节点里支持 "本地节点" 和 "远程节点". 本地节点就是同步区块链数据到本地电脑,安全性高,占用空间大. 远程节 ...

  6. Anaconda环境下GPT2-Chinese的基本使用记录

    偶然在看到了这个项目,感觉很厉害,于是就折腾了下,跑了一跑 项目地址:https://github.com/Morizeyao/GPT2-Chinese 如果Github下载太慢的可以用这个代下载:h ...

  7. C++ Grammar Focus

    一.结构体 1.基础模板 struct Node { <变量类型1> 变量名1; <变量类型2> 变量名2; ... } <定义变量名1>,<定义变量名2&g ...

  8. Ubuntu的apt-get/yarm/wget命令详解

    目录 一.查看本机是否安装软件 二.apt-get 三.yum 四.wget apt-cache和apt-get是apt包的管理工具, 他们根据/etc/apt/sources.list里的软件源地址 ...

  9. Gin框架

    目录 gin的参数获取 header参数 post Raw json 请求示例 gin的参数获取 package main import ( "fmt" "github. ...

  10. fastposter发布1.4.3 跨语言的海报生成器

    fastposter发布1.4.3 跨语言的海报生成器 v1.4.3 增加golang语言支持,优化生成器代码,完善官方文档 昨天喝了点小9️⃣,发版慢了些. future: 增加golang语言支持 ...