OSI七层协议:
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
完整的Http协议请求流程:
协议:客户端和服务器双方都能听的懂得语言(约定)
不需要关注底层的网络层或传输层协议 TCP/IP socket等
1989年诞生HTTP协议,是为了知识共享开发的。
建立底层的TCP链接
客户端 --> 服务端 请求
(请求头 请求方法 请求参数)
服务端 --> 客户端 响应
(响应头 协议状态码 响应正文)
断开底层的TCP链接-->释放资源,不然对服务器造成很大的资源
HTTP 1.1 出现持久链接
connection:keep-alive (只有一次链接和关闭)
持久链接可以理解为任意一端没有明确的断开链接,tcp一直会保持链接状态的;
查看淘宝图片的资源只会慢慢的加载出来,系统架构的设计和服务器的性能问题
URI:统一资源定位符
http:// 协议
www.baidu.com 服务器
xxxxx.png 资源
URL 是 URI的分支(子集合)URL-->资源的地址
HTTP请求方法:
GET:向服务器获取资源
POST:客户端提交数据到服务器中,保存到服务器的数据库中,并且服务器不允许提交重复的数据
PUT:客户端的数据发送服务器,并且覆盖服务器的数据
DELETE:从服务器删除指定的数据资源
HTTP协议状态码
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
常见状态代码、状态描述、说明:
200 OK      //客户端请求成功
400 Bad Request  //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
403 Forbidden  //服务器收到请求,但是拒绝提供服务
404 Not Found  //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
HTTP是无状态的协议,不知道是谁登录系统,从而导致cookie技术的发展
Cookie请求流程(存储在客户端中,不安全)
1. 客户端发送login登录请求系统给服务端
2. 服务端在response响应头中set-cookie管理cookie信息并且响应给客户端
3. 客户端发起请求需携带返回的cookie信息给服务端
4. 服务端会与请求中的cookie进行对比校验,校验通过后,响应给客户端是同一用户登录的系统
cookie来管理session
session请求流程(存储在服务器中)
1. 客户端登录login(输入userID和pwd)系统发送请求给服务端
2. 服务端在response响应头中set-cookie管理sessionID并且存储在数据库中,发送包含sessionID的cookie信息给客户端
3. 客户端发起请求需携带服务器返回sessionID的cookie信息给服务端
4. 服务器会与请求中的sessionID进行对比,与数据库中sessionID保持一致,进行放行响应给客户端信息
token请求流程(令牌)
1. 客户端登录请求给服务端
2. 服务器在响应数据中包含了token信息响应给客户端
3. 客户端再次请求中,会在请求参数中带上服务端的token信息,发送给服务端
4. 服务器会与客户端中的token进行对比,与数据库中响应的token令牌一致后,响应数据信息给客户端
Https安全证书的流程(443)
请求流程大致与Http一致,只有通信安全的线路,才实现客户端与服务器的通信和交互
Https = http + 加密 + 认证 + 信息完整被保护
SSL作用:
1. 提供加密的处理
2. 使用证书通知通信方,客户端开始通信前先确认服务器的证书

Http协议知识点回顾的更多相关文章

  1. 面试前的准备---C#知识点回顾----03

    经过一天的奔波,喜忧参半,不细表 再回看下标题,C#知识点回顾 再看下内容,数据库3NF 原谅我这个标题党 今天继续回忆 1.HTTP中Post和Get区别 这忒简单了吧,大家是不是感觉到兴奋了,长舒 ...

  2. Spring知识点回顾(08)spring aware

    Spring知识点回顾(08)spring aware BeanNameAware 获得容器中的bean名称 BeanFactoryAware 获得当前的bean factory Applicatio ...

  3. Spring知识点回顾(07)事件发布和监听

    Spring知识点回顾(07)事件发布和监听 1.DemoEvent extends ApplicationEvent { public DemoEvent(Object source, String ...

  4. Spring知识点回顾(01)Java Config

    Spring知识点回顾(01) 一.Java Config 1.服务和服务注入 2.Java 注解 :功能更强一些 3.测试验证 二.注解注入 1.服务和服务注入 2.配置加载 3.测试验证 三.总结 ...

  5. Java进阶(二十六)公司项目开发知识点回顾

    公司项目开发知识点回顾 前言 "拿来主义"在某些时候并不是最佳选择,尤其是当自己遇到问题的时候,毫无头绪. 在一次实验过程中,需要实现数据库的CRUD操作.由于之前项目开发过程中, ...

  6. $Django Rest Framework-认证组件,权限组件 知识点回顾choices,on_delete

    一 小知识点回顾 #orm class UserInfo (models.Model): id = models.AutoField (primary_key=True) name = models. ...

  7. django知识点回顾与补充

    一.django知识点回顾 1.Cookie操作 - 客户端本地存储的键值对 2.Session操作 - 3.URL路由 - /index -> view.函数 4.MTV 5.View中返回方 ...

  8. Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(一:知识点回顾)

    一.知识点回顾 1.Mybatis环境搭建(DAO层的实现)(使用maven项目管理工具) 需要引入的依赖包: <!-- 单元测试junit --> <dependency> ...

  9. 零基础Python知识点回顾(一)

    如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符  输入检查是否已经安装pip,一般安装了python都会有的. >pip         ...

随机推荐

  1. 常用深度学习框——Caffe/ TensorFlow / Keras/ PyTorch/MXNet

    常用深度学习框--Caffe/ TensorFlow / Keras/ PyTorch/MXNet 一.概述 近几年来,深度学习的研究和应用的热潮持续高涨,各种开源深度学习框架层出不穷,包括Tenso ...

  2. servlet、过滤器、监听器、拦截器之间的关系和区别

    一.概念 1.什么是servlet servlet是一个接口.定义了一套处理网络请求的规范,所有实现servlet的类,都需要实现它那五个方法,其中最主要的是两个生命周期方法 init()和destr ...

  3. mybatis学习——日志工厂

    为什么要使用日志工厂? 我们想一下,我们在测试SQL的时候,要是能够在控制台输出 SQL 的话,是不是就能够有更快的排错效率?答案是肯定的,如果一个 数据库相关的操作出现了问题,我们就可以根据输出的S ...

  4. Etcd中Raft joint consensus的实现

    Joint consensus 分为2个阶段,first switches to a transitional configuration we call joint consensus; once ...

  5. Kafka源码分析(三) - Server端 - 消息存储

    系列文章目录 https://zhuanlan.zhihu.com/p/367683572 目录 系列文章目录 一. 业务模型 1.1 概念梳理 1.2 文件分析 1.2.1 数据目录 1.2.2 . ...

  6. Rethinking Training from Scratch for Object Detection

    Rethinking Training from Scratch for Object Detection 一. 概述 正常训练目标检测的流程分为以下几种: 在imagenet上进行预训练,然后在特定 ...

  7. 【NX二次开发】创建扫描特征

    扫描特征相关函数: 创建扫描特征的相关函数: 1.UF_MODL_create_extrude_trim_opts 拉伸 2.UF_MODL_create_extrude_trim_opts1 拉伸 ...

  8. Django基础之模板层

    内容概要 模板层(模板语法) 模板语法传值​模板语法过滤器(内置方法)​模板语法标签(流程控制)​自定义过滤器和标签(了解) 模板的导入与继承(面向对象) 内容详细 1 模板层之模板语法传值 http ...

  9. 『言善信』Fiddler工具 — 15、使用Fiddler抓取HTTPS请求

    目录 1.Fiddler抓取HTTPS过程 2.拓展:SSL/TLS证书握手原理 3.Fiddler抓取HTTPS原理总结 4.Fiddler抓取HTTPS设置 步骤1:配置证书 步骤2:勾选设置 5 ...

  10. WEB安全新玩法 [2] 防范前端验证绕过

    用户登录,几乎是所有 Web 应用所必须的环节.Web 应用通常会加入一些验证手段,以防止攻击者使用机器人自动登录,如要求用户输入图形验证码.拖动滑动条等.但是,如果验证的逻辑仅仅在前端执行,是很容易 ...