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负载均衡.根 ...
随机推荐
- Nacos 开源、自研、商业化三位一体战略解读
简介: Nacos作为整个阿里云原生三位战略中的核心组成部分,我们在2018年以Configserver/VIPServer/Diamond为基础通过Nacos开源输出阿里十年沉淀的注册中心和配置中心 ...
- OpenKruise v0.10.0 版本发布:新增应用弹性拓扑管理、应用防护等能力
简介: 阿里云开源的云原生应用自动化管理套件.CNCF Sandbox 项目 -- OpenKruise,今天发布 v0.10.0 新版本,这也会是 OpenKruise v1.0 之前的最后一个 m ...
- [GPT] export default {} 和 export {} 的区别
在JavaScript ES6模块系统中,export default {} 和 export {} 有明显的区别: 1. export default {}: 这个语法用于导出一个默认的模块成员,它 ...
- [FAQ] pdf 无法导入 adobe AI, 分辨率 or 颜色缺失 or 字体缺失
属于Adoge软件不支持问题, 可能是分辨率.字体等多种原因. https://www.codebye.com/adobe-reader-or-acrobat-opens-pdf-file-drawi ...
- [Cryptocurrency] (XMR) Monero GUI 连接远程节点 操作方式
Monero 官网下载的钱包,在 高级设置 的节点里支持 "本地节点" 和 "远程节点". 本地节点就是同步区块链数据到本地电脑,安全性高,占用空间大. 远程节 ...
- Anaconda环境下GPT2-Chinese的基本使用记录
偶然在看到了这个项目,感觉很厉害,于是就折腾了下,跑了一跑 项目地址:https://github.com/Morizeyao/GPT2-Chinese 如果Github下载太慢的可以用这个代下载:h ...
- C++ Grammar Focus
一.结构体 1.基础模板 struct Node { <变量类型1> 变量名1; <变量类型2> 变量名2; ... } <定义变量名1>,<定义变量名2&g ...
- Ubuntu的apt-get/yarm/wget命令详解
目录 一.查看本机是否安装软件 二.apt-get 三.yum 四.wget apt-cache和apt-get是apt包的管理工具, 他们根据/etc/apt/sources.list里的软件源地址 ...
- Gin框架
目录 gin的参数获取 header参数 post Raw json 请求示例 gin的参数获取 package main import ( "fmt" "github. ...
- fastposter发布1.4.3 跨语言的海报生成器
fastposter发布1.4.3 跨语言的海报生成器 v1.4.3 增加golang语言支持,优化生成器代码,完善官方文档 昨天喝了点小9️⃣,发版慢了些. future: 增加golang语言支持 ...