软件开发架构

cs  客户端 服务端
bs  浏览器 服务端
ps:bs本质也是cs

浏览器窗口输入网址回车发生了几件事

"""
1 浏览器朝服务端发送请求
2 服务端接受请求(eg:请求百度首页)
3 服务端返回相应的响应(eg:返回一个百度首页)
4 浏览器接收响应 根据特定的规则渲染页面展示给用户看
"""
 

浏览器可以充当很多服务端的客户端
百度 腾讯视频 优酷视频.... 如何做到浏览器能够跟多个不同的客户端之间进行数据交互?
1.浏览器很牛逼 能够自动识别不同服务端做不同处理
2.制定一个统一的标准 如果你想要让你写的服务端能够跟客户端之间做正常的数据交互
那么你就必须要遵循一些规则
 

HTTP协议

"""
1 浏览器朝服务端发送请求
2 服务端接受请求(eg:请求百度首页)
3 服务端返回相应的响应(eg:返回一个百度首页)
4 浏览器接收响应 根据特定的规则渲染页面展示给用户看
"""

"""
超文本传输协议 用来规定服务端和浏览器之间的数据交互的格式...

该协议你可以不遵循 但是你写的服务端就不能被浏览器正常访问 你就自己跟自己玩
你就自己写客户端 用户想要使用 就下载你专门的app即可
"""
# 四大特性
1.基于请求响应 2.基于TCP/IP作用于应用层之上的协议 3.无状态
不保存用户的信息
eg:一个人来了一千次 你都记不住 每次都当他如初见
由于HTTP协议是无状态的 所以后续出现了一些专门用来记录用户状态的技术
cookie、session、token... 4.无/短链接
请求来一次我响应一次 之后我们两个就没有任何链接和关系了
长链接:双方建立连接之后默认不断开 websocket(后面讲项目的时候会讲)
​ # 请求数据格式
请求首行(标识HTTP协议版本,当前请求方式)
请求头(一大堆k,v键值对)
/r/n
请求体(并不是所有的请求方式都有get没有post有 存放的是post请求提交的敏感数据) # 响应数据格式
响应首行(标识HTTP协议版本,响应状态码)
响应头(一大堆k,v键值对)
/r/n
响应体(返回给浏览器展示给用户看的数据) # 响应状态码
用一串简单的数字来表示一些复杂的状态或者描述性信息: 1XX:服务端已经成功接收到了你的数据正在处理,你可以继续提交额外的数据
2XX:服务端成功响应了你想要的数据(200 OK请求成功)
3XX:重定向(当你在访问一个需要登陆之后才能看的页面 你会发现会自动跳转到登陆页面)
4XX:请求错误
404:请求资源不存在
403:当前请求不合法或者不符合访问资源的条件
5XX:服务器内部错误(500) ​
# 请求方式
1.get请求:
朝服务端要数据
eg:输入网址获取对应的内容
2.post请求:
朝服务端提交数据
eg:用户登陆 输入用户名和密码之后 提交到服务端后端做身份校验

# url:统一资源定位符(大白话 网址)

总结

"""
学习前端就是死记硬背 思想观念一定要改变
学习HTML的时候 它是一门标记语言
你在学的时候 你就记每一个标签到底表示什么意思
""" http四大特性
1 基于请求相应
2 基于tcp/ip协议,作用于应用层之上的协议
3 无状态
-不保存用户信息
4 短链接
-接收到马上断开
-长连接... http请求格式
1 请求首行(http版本,请求方式)
2 请求头(一堆kv键值对)
3 /r/n
4 请求体 http响应格式
1 响应首行(http版本,响应状态码)
2 响应头(一堆kv键值对)
3 /r/n
4 响应体 响应状态码
1xx:已接收到请求,可以继续发送请求
2xx:接收请求成功
3xx:重定向
4xx:请求错误
-404 请求资源不存在
5xx:服务器错误 请求方式
1 get (向服务端要数据)
2 post (向服务端提交数据) url:统一资源定位符(网址)

01:HTTP协议的更多相关文章

  1. Django框架01 / http协议、web框架本质

    Django框架01 / http协议.web框架本质 目录 Django框架01 / http协议.web框架本质 1.http协议 1.1 http协议简介 1.2 什么是http协议 1.3 H ...

  2. 01 http协议概念及工作流程

    一:HTTP协议 重要性: 无论是以后用webserverice ,还是用rest做大型架构,都离不开对HTTP协议的认识. 甚至可以简化的说: webservice = http协议+XML Res ...

  3. 接口测试01 - HTTP协议报文结构及示例

    HTTP基本架构 用一张简单的流程图来展示HTTP协议的基本架构,以便先有个基础的了解. 1)Web Client可以是浏览器.搜索引擎等等一切基于HTTP协议发起http请求的工具. 2)Web S ...

  4. 01 HTTP协议_servlet基础

    一.定义 http(Hyper Text Transfer Protocol):超文本传输协议 二.作用 数据传输 三.概念 HTTP消息: 1.客户端发向服务器的请求消息 2.服务器回给客户端的响应 ...

  5. 『安全科普』HTTP协议讲解及手工模拟发送

    学习,熟悉HTTP协议,便于以后进行HTTP重放攻击! 0x 01 HTTP协议 查看HTTP协议 先查看鼠标点击一个链接后,浏览器发出了怎样的HTTP请求. Chrome浏览器下,按F12进入开发者 ...

  6. iOS开发HTTP协议相关知识总结

    HTTP原理 什么是URL URL中常见的几种协议 什么是HTTP协议 HTTP是做什么的 为什么要使用HTTP协议 HTPP协议的通信过程介绍 HTTP请求 HTTP响应 HTTP请求的选择 两种发 ...

  7. Linux基础:网络协议篇

    01.网络协议 1. 操作系统基础 操作系统(operating System 简称OS)是管理和控制计算机硬件与软件自愿的计算机程序,是直接运行在"裸机"上的基本的系统软件,任何 ...

  8. 联通3g彩信设置

    手机ME865,安卓2.3.6 添加接入点名称:3gwapAPN:3gwap代理:10.0.0.172端口:80服务器:http://www.wo.com.cnMMSC:http://mmsc.myu ...

  9. Lvs+keepAlived实现负载均衡高可用集群(DR实现)

    第1章 LVS 简介 1.1 LVS介绍 LVS是Linux Virtual Server的简写,意为Linux虚拟服务器,是虚拟的服务器集群系统,可在UNIX/LINUX平台下实现负载均衡集群功能. ...

  10. Linux网络编程学习路线

    转载自:https://blog.csdn.net/lianghe_work/article 一.网络应用层编程   1.Linux网络编程01——网络协议入门 2.Linux网络编程02——无连接和 ...

随机推荐

  1. Markdown修改字体颜色

    在写blog时,想高亮某些字,但是发现markdown更改字体颜色不像word里那么方便,于是查了一下,要用一下代码进行更改字体颜色,还可以更改字体大小,还有字体格式 <font 更改语法> ...

  2. SpringBoot面向切面编程(AOP)

    Aspect (与SpringBoot整合) 总结 作用位置 try{ try{ @Around 前置环绕通知 @Before 前置通知 method.invoke(..); }catch(){ @A ...

  3. json的解析和生成

    相比于xml,json的主要特点是数据小,解析速度快,但是描述性差. java中常见的json解析方法有Gson.Jackson.JSON.simple. 从解析速度上来看,Gson适合解析小数据量, ...

  4. LinkedList作为栈和队列的使用

    最近在LeekCode用java写一些算法时,经常遇到要使用栈和队列结构,使用栈的话,Stack已经不被推荐使用了,所以栈和队列我们通常都是用LinkedList这种双链表结构实现.Linkedlis ...

  5. valgrind 内存泄漏分析

    概述 valgrind 官网 https://www.valgrind.org/ valgrind 是 Linux 业界主流且非常强大的内存泄漏检查工具.在其官网介绍中,内存检查(memcheck)只 ...

  6. Educational Codeforces Round 92 (Rated for Div. 2)

    A.LCM Problem 题意:最小公倍数LCM(x,y),处于[l,r]之间,并且x,y也处于[l,r]之间,给出l,r找出x,y; 思路:里面最小的最小公倍数就是基于l左端点的,而那个最小公倍数 ...

  7. python3.7[列表] 索引切片

    python3.7[列表] 索引  切片 排序     #### 列表.sort 永久排序   sorted(列表) 临时排序   ### >>> print(sorted(a))[ ...

  8. 文件不同 diff --brief XX YY

    文件不同 diff --brief XX YY 文件不同 --哪些位置 diff -c XX YY 9.diff命令 diff命令用于比较多个文本文件的差异,格式为"diff [参数] 文件 ...

  9. 011.Ansible条件语句

    一 简介 在有的时候play的结果依赖于变量.fact或者是前一个任务的执行结果,或者有的时候,我们会基于上一个task执行返回的结果而决定如何执行后续的task.这个时候就需要用到条件判断. 条件语 ...

  10. Ansible_变量管理与设置

    一.Ansible变量管理 1.变量概述 Ansible支持利用变量来存储值,并在Ansible项目的所有文件中重复使用这些值.这可以简化项目的创建和维护,并减少错误的数量 通过变量,可以轻松地在An ...