Web之http学习笔记
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
表单隐藏字段
- 不是很懂
Web之http学习笔记的更多相关文章
- Web安全测试学习笔记-DVWA-SQL注入-2
接上一篇SQL注入的学习笔记,上一篇我通过报错信息得知后台数据库是MySQL(这个信息非常重要~),然后通过SQL注入拿到了用户表的所有行,其实我们还可以通过MySQL的特性来拿更多的信息. 1. 获 ...
- 《应用Yii1.1和PHP5进行敏捷Web开发》学习笔记(转)
学习地址为: http://www.yiibook.com/book/agile_web_application_development_with_yii1.1_and_php5 1.建立应用程序 ...
- asp.net web.config的学习笔记
原文地址:http://www.cnblogs.com/Bulid-For-NET/archive/2013/01/11/2856632.html 一直都对web.config不太清楚.这几天趁着项目 ...
- 《白帽子讲Web安全》- 学习笔记
一.为何要了解Web安全 最近加入新公司后,公司的官网突然被Google标记为了不安全的诈骗网站,一时间我们信息技术部门成为了众矢之的,虽然老官网并不是我们开发的(因为开发老官网的前辈们全都跑路了). ...
- web前端-html学习笔记
学习html最重要的是坚持.细心.多动手.慕课网<HTML+CSS基础课程>的笔记. 1.<h1>网站标题</h1> 如:<h1>腾讯网</h1& ...
- Web.py 框架学习笔记 - URL处理
最近由于工作需要开始学习基于python的web应用框架web.py.为了方便学习,将学习心得逐日记下以便日后复习. URL 模板: web.py提供了一套url处理的模板,在python工程中,只需 ...
- Web开发入门学习笔记
公司web项目终于要启动了,本以为django学习可以在实战中进行,结果最终使用了Drupal框架,好吧,那我们就PHP走起,买了本<细说PHP>,先跟着过一遍Web开发入门. HTTP协 ...
- 《Flask Web开发》学习笔记
第一部分 Flask简介 前言:想熟练掌握一门web框架,为以后即将诞生的测试工具集做准备.为什么选择flask要做熟练掌握的一门框架,而不是其他的,最主要的原因是可以随意定制. 特别提醒:这本书的代 ...
- 活字格Web应用平台学习笔记1 - 下载安装,ready go
今年有一个很重要的职业目标,就是好好学习活字格这个神器,争取在这两个月拿到活字格初级工程师的认证证书.给自己加个油,今天开始好好学习,好好做笔记. 第一步,下载安装 先去活字格官网:http://ww ...
- Web负载均衡学习笔记之实现负载均衡的几种实现方式
0x00 概要 负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是Web负载均衡.根 ...
随机推荐
- [TP5] ThinkPHP 默认模块和单模块的设置方式
由于默认是采用多模块的支持,所以多个模块的情况下必须在URL地址中标识当前模块, 如果只有一个模块的话,可以进行模块绑定,方法是应用的入口文件中添加如下代码: // 绑定当前访问到index模块 de ...
- [FE] FastAdmin 动态下拉组件 Selectpage 自定义 data-params
正常情况下,我们想获取列表只需要定义接口路径和要显示的字段名即可, 比如: <input id="c-package_ids" data-rule="require ...
- 一键自动化博客发布工具,chrome和firfox详细配置
blog-auto-publishing-tools博客自动发布工具现在已经可以同时支持chrome和firefox了. 很多小伙伴可能对于如何进行配置和启动不是很了解,今天带给大家一个详细的保姆教程 ...
- chgrp chown
chgrp 用来改变文件所属群组,如果要改变的群组不在/etc/group里面,将会报错. chown 用来改变文件的所有者,如果改变的所有者便在/etc/passwd里面,将会报错. 需要注意的是c ...
- vben集成keycloak
前言 公司的项目是vben admin框架需要集成keycloak,那keycloak大家应该都不陌生了,就是统一认证的一个系统简称IDS.之前用过cas,并重构过cas的前端界面,所以对此也是比较熟 ...
- 微信小程序订阅消息开发指南(java)
微信小程序订阅消息开发指南(java) 第一步 准备阶段 1.你得有一个小程序,并且认证了,个人的也行 2.开通订阅消息 小程序后台->功能->订阅消息 3.公共模板库选择一个模板 选择的 ...
- Kmesh进入CNCF云原生全景图,实现网格治理sidecarless化
本文分享自华为云社区<Kmesh进入CNCF 云原生全景图> ,作者:云容器大未来. 近日,Kmesh 正式进入 CNCF 云原生全景图,位于 Service Mesh 类别下. CNCF ...
- 基于ADB Shell 实现的 Android TV、电视盒子万能遥控器 — ADB Remote ATV
ADB Remote ATV Android TV 的遥控器,基于 ADB Shell 命令 ADB Remote ATV 是一个 Android TV 的遥控器,基于 ADB Shell 命令,泛用 ...
- SqlServer 死锁查询
use master go create procedure sp_who_lock as begin declare @spid int,@bl int, @intTransactionCountO ...
- C#的奇技淫巧:利用WinRM来远程操控其他服务器上的进程
前言:有时候远程服务器的进程你想偷偷去围观一下有哪些,或者对一些比较调皮的进程进行封杀,或者对一些自己研发的服务进行远程手动启动或者重启等,又不想打开远程桌面,只想悄咪咪地执行,那也许下面的文章会 ...