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. [FAQ] Sortable 拖拽组件, 火狐浏览器中打开新窗口问题

      Q:用了 sortable 组件,在火狐浏览器中进行拖拽时,会打开新窗口 ? Sortable组件地址,https://github.com/SortableJS/Sortable 当前处理方式 ...

  2. [FAQ] PHPStorm None project files detection

    当你发现在 phpstorm 中编辑项目文件,却提示 None project files detection.. 并且左侧 Project 下面只有文件,没有项目目录了. 此时可以删除项目目录下的 ...

  3. 2019-10-7-WPF-will-break-when-an-exception-be-throw-in-the-StylusPlugIn

    title author date CreateTime categories WPF will break when an exception be throw in the StylusPlugI ...

  4. 11.Node节点维护

    题目:Node节点维护 配置环境kubectl config use-context ek8s 将名为ek8s-node-0的node节点设置为不可用,并重新调度该node上所有运行的pods. 官方 ...

  5. ChatGPT 眼中的程序员

    1 你如何看待程序员这个行业 程序员这个行业在现代社会扮演着非常重要的角色.作为一个技术驱动的职业,程序员们负责开发.设计和维护软件和应用程序,这些技术改变了我们的生活方式.商业模式和社会互动方式. ...

  6. juc之ConcurrentHashMap在我工作中的实践

    Map是我工作中应用比较多的数据结构之一,主要用来存储一些kv的映射信息,如果是单线程环境下我会优先使用HashMap,但是如果在多线程环境下继续使用HashMap我不确定会不会被我老大打死,为了生命 ...

  7. ansible系列(26)--ansible的tags标签

    目录 1. tags标签 1.1 指定执行某个tags 1.2 指定排除某个tags 1. tags标签 默认情况下, Ansible 在执行一个 playbook 时,会执行 playbook 中所 ...

  8. 深入理解Django:中间件与信号处理的艺术

    title: 深入理解Django:中间件与信号处理的艺术 date: 2024/5/9 18:41:21 updated: 2024/5/9 18:41:21 categories: 后端开发 ta ...

  9. AIRIOT训练营沈阳站圆满结束|手把手教你搞定物联网应用开发

    8月28日-9月1日,由航天科技控股集团有限公司(以下简称"航天科技")主办的<AIRIOT物联网平台应用与实战>训练营在沈阳圆满结束,来自上海电机学院.中渝软通信息技 ...

  10. webapi添加添加websocket中间件

    添加位置 我按照MSDN的例子添加了一个复述客户端响应的中间件.需要注意的时,中间件采用那种方式添加,添加在哪. 哪种方式 我选择创建一条管道分支,只要时ws的连接请求,就转到这个分支 因此,我们需要 ...