代码编织梦想

1.HTTP协议

1.1http协议的特征

HTTP协议是建立在TCP/IP协议之上的应用层协议,默认端口号:80或8080
HTTP协议的特点是: 无状态,短连接。

1.2http协议的请求

利用抓包工具httpwatch可以获取报文,多见于前端,后端用于分析传输过程中产生的问题。
Http协议的报文是ASCII码,在TCP/IP协议上主要分为三部分:请求行 请求头 请求体

1.2.1请求行

请求头是浏览器向服务器发送的,在第一行,包括:
	(1)请求行的请求方式:POST请求和GET请求
	(2)url地址
	(3)http协议的版本

1.2.1.1GET请求

在这里插入图片描述
Get请求,url参数可见

1.2.1.2POST请求(人脸识别方案)

在这里插入图片描述
post请求url参数不可见

1.2.1.3POST请求和GET请求的区别

本质区别

(1)Get产生一个TCP数据包,POST产生两个TCP数据包。
(2)对于GET请求方式,浏览器把http header和data一同发送出去,服务器响应200代表发送成功。(以二开头的返回码表示成功 4开头表示失败)
(3)对于POST请求,浏览器先发一个header,服务器响应100 continue ,浏览器再发送data ,服务器响应200

其他区别

(1)get,url携带的参数可见,post url携带的参数不可见但是你可以通过抓包来获取

//get 请求方式
var url = 'http://192.168.1.40:8080/v1/sea?page=1&per_page=10' + 'search=' + escape(str)
//url携带的参数可见 参数用&符号进行连接,被当做是参数的分隔符处理,上面就是两个参数。page=1和per_page=10

(2)get,通过请求行拼接url进行参数传递
post,通过请求主体来传递传输
(3)get 请求可以缓存
post请求不可缓存
(4)get 请求页面后退时,不产生影响(因为有缓存)
post请求页面后i退时,会重新提交请求(因为没有缓存)
(5)get 一般传输数据大小为2K-4K
post请求根据配置文件来确定,可以是无限大
(6)原则上post请求更加安全,但隐藏的参数也是会被抓包来获取

1.2.2请求头

浏览器向服务器发送一些状态数据,标识数据等
一个信息一行,包括信息名:信息值,按行进行分割
请求头信息,需要使用一个空行结束!

User-Agent: firefox//表示发送请求的浏览器(请求代理端)是firefox
Host: shop.100.com//表示请求的主机域名(基于域名的虚拟主机就是靠这个头判断的)
Cookie:name=itcast//浏览器携带的cookie数据。
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive
 

1.2.3请求主体

请求代理端向服务器发送的请求数据
典型的就是POST形式发送的表单数据
get 请求是没有请求主体的,get数据是在 请求行的url上进行传递到

1.3http协议的响应

HTTP/1.1 200 ok
Date: Tue,19 Nov 2013 03:08:55 GMT
Server: Apache/2. 2.22 (Win32) PHP/5.3. 13
X- -Powered -By: PHP/5. 3.13
Content-Length: 16
Content- Type: text/html

1.3.1响应行

响应行包括: 协议版本、状态码、状态消息。
例如:

1xx:消息
2xx:成功
3XX:请求被重定向
4XX:浏览器端错误
5xx:服务端错误

1.3.2响应头

Date: 响应时间
Content-Length:相应主体的数据长度
Content-Type:text/html:内容类型 :告知浏览器接下来发送的响应主体数据的格式

1.3.3响应主体

主要的响应数据,在浏览器的主体区域显示的数据都是响应主体(对于C语言而言拿的就是ASCII码或者是字符串)
注意: 每行(包括响应行和响应头、响应主体)都需要一个\r\n结尾

2.HTTPS协议

2.1https协议简介

http传输的是明文,因此很容易被截取和解析,https是在http和tcp之间多添加了一层,进行身份验证和数据加密。

2.2密码学基础

明文:未被加密的原始数据

密文:通过加密算法对原始数据进行加密后产生的数据

密钥:密钥是一种参数,它是在明文转化为密文或密文转化为明文的算法中输入的参数,密钥分为对称密钥和非对称密钥,分别应用于对称加密和非对称加密中。

对称加密:对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥进行加密和解密。对称加密的特点是算法公开、加密解密速度快,适用于对大量的数据进行加密。常见的对称加密算法有:DES、3DES、RC5、TDEA、Blowfish、IDEA。数据加密和解密都是用私钥。该私钥不能被泄漏。
加密过程:明文+加密算法+私钥=密文
解密过程:密文+解密算法+私钥=明文

非对称加密:非对称加密也叫做公钥加密。非对称加密和对称加密相比的安全性好。对称加密的通信双方使用相同的密钥,如果一方的密钥泄露,那么整个通信就被破解。而非对称加密使用一对密钥,即公钥和私钥,二者成对出现。私钥自己保存,不能对外泄露,公钥指的是公共密钥,任何人都可以获取该密钥,用公钥和私钥的任何一个进行加密,再用另外一个进行解密。
被公钥加密过的密文只能用私钥解密:
解密过程:明文+加密算法+公钥=密文 密文+解密算法+私钥=明文
被私钥加密的密文只能被公钥解密:
解密过程:明文+加密算法+私钥=密文 密文+解密算法+公钥=明文
非对称加密的算法有:RSA、Elgamal、Rabin、D-H、ECC(椭圆曲线加密算法)等非对称加密和解密的速度慢只适合小数据的加密和解密

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45993872/article/details/129672115

计算机网络协议(四)——http、https、p2p协议-爱代码爱编程

底层网络知识详解:最常用的应用层 概述一、HTTP协议1.1、HTTP 1.11.2、HTTP 2.01.3 QUIC协议 二、HTTPS协议三、P2P协议 概述 这个专栏的计算机网络协议,我是在极客

【网络基础知识】几种常用网络协议详解-爱代码爱编程

一、OSI模型 名称层次功能物理层1实现计算机系统与网络间的物理连接数据链路层 2进行数据打包与解包,形成信息帧网络层3提供数据通过的路由传输层4提供传输顺序信息与响应会话层5建立和中止连接表示层6数据转换、确认数据格式应用层 7提供用户程序接口二、协议层次 网络中常用协议以及层次关系   1、 进程/应用程的协议 平时最广泛的协议,这一层的每个

计算机网络的各层协议知识总结-爱代码爱编程

** #** 计算机网络的各层协议知识总结 一、物理层 没有涉及到比较重要的协议,但是有一个比较重要的技术----非对称数字用户线(ADSL) 二、数据链路层 1、点对点协议(PPP----point to point protocol,用户计算机与ISP进行通信所使用的协议) (1)组成:一个将IP数据报封装到串行链路的方法 + 一个用来建立、配

常见的网络协议HTTP、TCP/IP、UDP等【知识点整理】-爱代码爱编程

目录 1.什么是网络通信协议 2.HTTP协议 说下你对HTTP协议的了解(特性) HTTP 请求/响应的步骤 HTTP的短链接和长连接(http1.0和1.1区别) 在浏览器地址栏键入URL,按下回车之后会经历以下流程 HTTP请求方法 3.TCP/IP协议 说下你对TCP/IP协议的了解 4.网络通信协议(TCP/UDP) 说下你

【网络知识】_详解HTTP和HTTPS-爱代码爱编程

文章目录 1. HTTP简介2. HTTP发展历史3. HTTP工作原理4. HTTP消息结构5. HTTP请求方法6. HTTP状态码7. HTTP 的优点和缺点8. HTTPS协议9 HTTPS协议的工作原理10 HTTPS缺点11 HTTP和HTTPS的区别 1. HTTP简介 HTTP协议是Hyper Text Transfer Pr

HTTP协议相关的网络经典五层模型-爱代码爱编程

网络通信相关概念的讲解 – 网络协议分层(经典五层模型) 在我们了解 HTTP 相关内容之前我们先来了解一下 “网络协议分层” 相关内容, 因为这个是我们了解 HTTP 相关内容的前提条件; 大家有一定深入了解就会明白为什么这样说。 有什么疑问的地方欢迎评论区留言 。 废话不多说, 直接上代码以及图例(为了让大家方便阅读, 都有自己验证过程的一些图例作

常见网络协议汇总-爱代码爱编程

常用网络协议 前言计算机网络五层模型回顾应用层协议DNS协议:HTTP协议HTTPS协议传输层协议UDP协议TCP网络层IP协议ICMP协议数据链路层ARP协议物理层整体的网络传输流程 前言 本篇博客将对基于 计算机网络五层模型 中的常见协议做以总结 ,目的通过这些具体的协议更深刻的认识整体网络的传输流程及相关网络原理 计算机网络五层模型回

网络协议-基础知识(笔记)-爱代码爱编程

互联网 互联网的出现,彻底改变了人们的生活方式,足不出户就可以购物、聊天、看电影、买车票、上班等 思考:数据是如何从一个设备传递到另一个设备的? 这一切都是由网络协议来规定的。没有网络协议,就没有今天的互联网 为什么要学习网络协议 互联网、移动互联网、物联网,都离不开网络协议 最熟悉的网络协议:HTTP 为了满足各种需求,有各式各样的网络协议(H

计算机网络_第四章知识总结-爱代码爱编程

文章目录 网络层提供的两种服务网际协议 IP虚拟互连网络分类的 IP 地址IP 地址与硬件地址地址解析协议 ARPIP 数据报的格式IP 层转发分组的流程划分子网和构造超网划分子网和构造超网使用子网时分组的转发无分类编址 CIDR网际控制报文协议 ICMP互连网的路由选择协议内部网关协议 RIP内部网关协议 OSPF外部网关协议 BGPIPv6IP

HTTP协议基础知识-爱代码爱编程

简介 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等 HTTP是建立在TCP协议之上的一种应

网络面试知识点整理-爱代码爱编程

一、TCP实现原理 1、协议介绍 TCP(传输控制协议,协议ID-6)提供面向连接且可靠的字节流服务,通过最大分段大小(MSS),应用数据被分割成合适的数据段,在以太网上MSS最大值为1500-20-20=1460字节,三次握手时由两端协商(SYN选项中),如果不设置,在因特网上默认MSS为536字节(一般取512的倍数,512字节),MTU = MS

网络协议常见面试题_敲代码的哆来a梦的博客-爱代码爱编程

1、请详细介绍一下http协议 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。 http协议是应用层协议,端口号是:80 Http是无状态,是指处理事物没有记忆,下一次的请求与上一次的请求,服务器不知道是

【网络】http协议详解-爱代码爱编程

😀大家好,我是白晨,一个不是很能熬夜😫,但是也想日更的人✈。如果喜欢这篇文章,点个赞👍,关注一下👀白晨吧!你的支持就是我最大的动力!💪💪💪 文章目录 📙前言📗HTTP协议🏡1. HTTP背景介绍⛪2. H

计算机网络基础知识-爱代码爱编程

目录 1. HTTP 协议 HTTP 特点 HTTP 与HTTPS 的区别 HTTP 请求报文 HTTP 响应报文 2. FTP 协议 与TFTP 协议 FTP 协议 TFTP 协议 3. SMTP 协议、POP3协议与IMAP协议 SMTP协议  POP3协议 IMAP 协议 1. HTTP 协议 HTTP(HyperTe