首页 > 其他分享 >Web之http学习笔记

Web之http学习笔记

时间:2024-06-19 23:54:23浏览次数:29  
标签:Web http 请求 用户 笔记 响应 Cookie 服务器

目录

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,请求,用户,笔记,响应,Cookie,服务器
From: https://www.cnblogs.com/Sol9/p/18257814

相关文章

  • 浏览器http相关问题
    文章目录浏览器http相关问题1.http常用状态码2.Cookiesessionlocalstorage区别3.http和https的区别浏览器http相关问题1.http常用状态码HTTP状态码(英语:HTTPStatusCode)用来表示请求的结果,状态码被分为五大类:100-199信息,服务器收到请求,需要请求者继续执行......
  • 电路分析期末总结笔记上
    电流,电压定义及单位电流(Current)的定义是单位时间内通过导体横截面的电荷量。电压(Voltage),又称作电势差或电位差,是衡量单位电荷在静电场中由于电势不同而产生的能量差的物理量。 参考方向,关联参考概念U,I采用相同的参考方向,为正U,I采用不相同的参考方向,为负功率的计算......
  • 学习笔记STMF4 TIMER定时器(使用开发板立创天空星STMF4)
    目录                                                #定时器的介绍             #怎么去理解定时器的预分频系数                                        ......
  • [模式识别复习笔记] 第1-2章 基本概念
    1.模式识别系统的各个设计环节模式采集:借助物理设备(传感器、摄像头)进行数据的采集和存储。预处理:数据清洗、降噪,增强数据中有用的信息。特征提取:提取数据中对识别有用的特征。分类器学习:根据训练数据特点,选择何时的分类器模型,利用训练集学习得到参数。2.模式......
  • [模式识别复习笔记] 第3章 线性判别函数
    1.线性判别函数1.1定义在\(d\)维特征空间中,有线性判别函数:\[G(x)=w^{\text{T}}x+b\]其中,\(w=[w_1,w_2,\ldots,w_d]^T\)称为权值向量,\(b\)称为偏置,都是需要学习的参数。\(G(x)=0\)为决策边界方程。PS:只能解决二分类问题。1.2几何意义\(w\)为超......
  • [模式识别复习笔记] 第4章 SVM
    1.SVM简介1.1SVM支持向量机给定如图所示的线性可分训练集,能够将两类样本正确分开的直线很多。感知机算法可以找到一条直线,且找到的直线不唯一。然而感知机无法确定哪一条直线最优,但是\(\text{SVM}\)可以。\(\text{SVM}\)可以找到能够将训练样本正确分类的直线中具有......
  • C语言期末复习笔记
    目录一,基础介绍。二,标识符起名规范。三,数据类型。四,变量。五,运算符和表达式1,加减乘除​编辑  /为整除,%为余数,*为乘号2,关系运算符3,逻辑运算符4,运算符优先级5,前自增,后自增6,三目运算符。7,符合运算符。六,控制语句。1,if判断2,多重判断。3,for循环4,while循环5,d......
  • 人月神话阅读笔记06
    《计划丢弃一个》一章探讨了在软件开发项目中采用迭代开发和原型设计的重要性。布鲁克斯建议团队在项目早期阶段不要试图一次性实现一个完美的系统,而是通过逐步迭代和快速反馈的方式,发现和修正设计中的问题。在实践中,这种渐进式的开发方法能够显著降低项目失败的风险,并且有助于团......
  • 《网络安全设计权威指南》阅读笔记
    安全系统工程是关于如何优化目标系统,使目标系统风险最小化,而不是如何最大化网络安全的投资规模。安全权衡的因素:用户友好度、时间、员工士气、商机流失、机会成本、服务或产品的数量、质量及成本、有限资源(算力、电力、空间等)避免为敌对者提供高价值目标,避免价值汇聚。知道他人......
  • [学习笔记] 树链剖分 - 图论 & 数据结构
    树链剖分怎么说呢,感觉只要不是求最大最小值好像都可以用树上查分代替。例题[ZJOI2008]树的统计-单点修改树链查询树链剖分板子,不多说了,代码注意细节就行。该用dfn的地方不要把点的编号传进去。#include<bits/stdc++.h>usingnamespacestd;#definels(id<<1)#define......