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负载均衡.根 ...
随机推荐
- [FAQ] Sortable 拖拽组件, 火狐浏览器中打开新窗口问题
Q:用了 sortable 组件,在火狐浏览器中进行拖拽时,会打开新窗口 ? Sortable组件地址,https://github.com/SortableJS/Sortable 当前处理方式 ...
- [FAQ] PHPStorm None project files detection
当你发现在 phpstorm 中编辑项目文件,却提示 None project files detection.. 并且左侧 Project 下面只有文件,没有项目目录了. 此时可以删除项目目录下的 ...
- 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 ...
- 11.Node节点维护
题目:Node节点维护 配置环境kubectl config use-context ek8s 将名为ek8s-node-0的node节点设置为不可用,并重新调度该node上所有运行的pods. 官方 ...
- ChatGPT 眼中的程序员
1 你如何看待程序员这个行业 程序员这个行业在现代社会扮演着非常重要的角色.作为一个技术驱动的职业,程序员们负责开发.设计和维护软件和应用程序,这些技术改变了我们的生活方式.商业模式和社会互动方式. ...
- juc之ConcurrentHashMap在我工作中的实践
Map是我工作中应用比较多的数据结构之一,主要用来存储一些kv的映射信息,如果是单线程环境下我会优先使用HashMap,但是如果在多线程环境下继续使用HashMap我不确定会不会被我老大打死,为了生命 ...
- ansible系列(26)--ansible的tags标签
目录 1. tags标签 1.1 指定执行某个tags 1.2 指定排除某个tags 1. tags标签 默认情况下, Ansible 在执行一个 playbook 时,会执行 playbook 中所 ...
- 深入理解Django:中间件与信号处理的艺术
title: 深入理解Django:中间件与信号处理的艺术 date: 2024/5/9 18:41:21 updated: 2024/5/9 18:41:21 categories: 后端开发 ta ...
- AIRIOT训练营沈阳站圆满结束|手把手教你搞定物联网应用开发
8月28日-9月1日,由航天科技控股集团有限公司(以下简称"航天科技")主办的<AIRIOT物联网平台应用与实战>训练营在沈阳圆满结束,来自上海电机学院.中渝软通信息技 ...
- webapi添加添加websocket中间件
添加位置 我按照MSDN的例子添加了一个复述客户端响应的中间件.需要注意的时,中间件采用那种方式添加,添加在哪. 哪种方式 我选择创建一条管道分支,只要时ws的连接请求,就转到这个分支 因此,我们需要 ...