http协议知识点整理

wuzhuangzhuang wuzhuangzhuang     2023-04-06     474

关键词:

看到身边有那么多的大佬还在不懈的学习,心里就会愧疚一波,真是越厉害的人越努力啊。

整理下http协议以及相关知识点,方便以后复习。

1.什么是HTTP协议

HTTP超文本传输协议就是指在浏览器发送和服务器接收请求以及返回响应的时候接受要遵守的一套规则,就像汽车在路上行驶也要根据交通规则来进行啊,不然就乱套了。

http超文本传输协议是基于TCP/IP通信协议来传递数据的,在OSI七层中的应用层。

2.HTTP协议的特点

①通信速度比较快,因为HTTP协议简单,客户端每次向服务器发出请求的时候只需要传递请求方法和路径就可以了。

②比较灵活,因为HTTP协议允许传输任意类型的数据对象。正在传输的类型由Content-Type标记。

③比较节省传输时间,因为http是无连接的(无连接的意思是每次连接只会处理一个请求(相对的也会有一个响应))。当服务器处理完客户的请求以后,客户端也拿到了服务器发出的响应,随后断开连接。采用这种方式节省传输时间,ps:更第一个特点也差不多了。。。。

④无状态:HTTP协议是无状态协议(无状态是指协议对事务处理没有记忆能力)。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

3.啥叫无连接无状态呢?

就是说这一次请求和上一次请求是没有任何关系的,互不认识的,没有关联的,打个比喻吧,快递员A经常鱼送快递,但鱼没有记忆,A经常给鱼送快递,但鱼不认识快递员咋办?看下个问题哦

4.怎么解决http的无状态无连接呢?

额,就是给鱼儿增加记忆功能,也就是让http协议加上cookie,session,tonken(加上后服务器就知道你登录后属于哪个用户,知道你比较喜欢什么,知道你曾经在网站上做了哪些操作),这样鱼就知道是这个快递员喜欢给我送东西。

 5.那什么是cookie,session,tonken 呢?

首先接着用例子说:

快递员A要给鱼儿送快递得进去小区啊,然后小区管理员(服务器),会给A一个cookie,证明A是快递员,这个cookie里面还有一个暗藏的session_id(也是服务器发的),证明A到小区都干啥了,有个记录。以后A到小区后,小区管理员知道A的在小区内所有的轨迹和操作。。。。。

如果不懂例子就看下文::

cookie是什么:是一个验证身份的东东,存储在浏览器内,如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了,如果设置过期时间,那么过期时间到了cookie才会过期。

session是什么:Session是用来鉴权的,Session将数据存储在服务器中,服务器会为每一个用户创建一条session_id并存入到cookie,用户访问服务器 的时候需要拿着sessionid去表明自己的身份。 Session的实现是基于Cookie, Session需要借助于Cookie来存储sessionID。

token是什么:token也是用来鉴权的,鉴定访问的接口是否正常,是否是非法访问,绕过前端访问(每个页面都会有个token,如果你绕过前端直接访问某个页面,token就会鉴定你是绕过前端访问就会拒绝你的请求)

Cookie的原理

(1)客户端第一次请求时,发送数据到服务器。

(2)服务器返回响应信息的同时,还会传回一个cookie(cookie S-001)

(3)客户端接收服务器的响应之后,浏览器会将cookie存放在一个统一的位置。

(4)客户端再次向服务器发送请求的时候,会把Cookie 带给服务器。

(5)这样服务器就知道是哪个用户了。

session的原理:

(1)服务器在处理客户端请求过程中会创建session,并且为该session生存唯一的session ID。(这个session ID在随后的请求中会被用来重新获得已经创建的session。在session被创建后,就可以调用session相关的方法向session中新增内容,这些内容只会保存在服务器中) 

(2)服务器将session ID发送到客户端

(3)当客户端再次请求时,就会带上这个session ID

(4)服务器接收到请求之后就会依据Session ID 找到相应的Session ,完成请求

##########################放两个图更容易知道哦#####################

技术图片

 

 

技术图片

 

Cookie和session有啥区别里?

①.Cookie相当于授权

②.Session相当于鉴权

③.cookie放在客户端的浏览器上,session放服务器上。

④ Session生成的Session id是在cookie里保存的,cookie被禁止后可以通过URL重写来继续使用session

⑤.cookie不是安全,存放在本地的COOKIE可能被获取并进行COOKIE欺骗。

⑥.session会给服务器带来压力,考虑到服务器性能,应当使用COOKIE。

⑦.cookie只能保存字符串类型,以文本的方式。session通过类似与Hashtable的数据结构来保存,能支持任何类型的对象(session中可含有多个对象)

⑧.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie, Session大小没限制。

 6.OSI七层协议

互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,有的分为七层,四层

七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

四层划分为:应用层、传输层、网络层、网络接口层。

7.什么是tcp/ip协议

HTTP协议也属于TCP/IP协议,TCP/IP协议是一个协议的集合,里面包含很多协议的,因为TCP、IP协议是两个很重要的协议,就用他两命名了。

TCP/IP协议也就是OSI协议的四层:包括应用层,传输层,网络层,网络访问层。

TCP/IP是面向连接的协议,建立连接需要三次握手,断开连接需要四次挥手。

8.三次握手四次挥手

先聊聊三次握手:

①.发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。

②.接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。

③.最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。

就像A和B打电话,A说是我,听到我声音了吗,B说,我听到了,你能听到我说话吗,A说我能听到啊,咱们开始打电话吧。

三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连 接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”

 

再聊聊四次握手:

①在数据传输完毕之后,客户端会向服务端发出一个FIN终止信号。

②服务端在收到这个信号之后会向客户端发出一个ACK确认信号。

③如果服务端此后也没有数据发给客户端时服务端会向客户端发送一个FIN终止信号。

④客户端在收到这个信号之后会回复一个确认信号,在服务端接收到这个信号之后,服务端与客户端的通道也就关闭

通俗的说法

①.Client:我所有东西都说完了

②.Server:我已经全部听到了,但是等等我,我还没说完

③.Server:好了,我已经说完了

④.Client:好的,那我们的通信结束

9.HTTP常见状态码

一般分为五大类:

1xx:还在请求中

2xx:代表成功

3xx:代表重定向

4xx:代表请求有错误

5xx:服务器端有错误

常见状态码以及说名如下:

200:表示一切正常,到了服务器,服务器也正常响应请求。

301是永久重定向,常用的场景是使用域名跳转(发送请求之后,就会返回301状态码,然后返回一个location,提示新的地址,浏览器就会拿着这个新的地址去访问。)

302(临时重定向):指出文件已经被临时已到别处,是临时重定向,用来做临时跳转。接着上面的例子,重定向到 https://www.zhihu.com 的请求又会通过302重定向到 https://www.zhihu.com/signup?next=%2F

304(未修改):表示客户机缓存的版本是最新的,客户机应该继续使用它,比如前端的js,css图片等(不然再从服务器下载这些就容易造成缓慢)

403(禁止):服务器理解客户端请求,但拒绝处理它,通常由于服务器上文件或目录权限设置所致

404(找不到):服务器上不存在客户端所请求的资源

500(内部服务器错误):服务端程序发生错误

504:超时

10.HTTP协议请求方法

最基本的方法有五种:post,get ,put,head,delete、

http中的put(增加),dellete(删除),post(修改),get(查询)刚好对应常用的增删改查的4个操作,最常用的还是post和get

get 一般用于获取查询资源信息,

post 一般用于更新资源信息

head 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

put 从客户端向服务器发送的数据取代指定文档的内容

delete 请求服务器删除指定页面

最常用的方法是get和post方法。

get方法:常用于像服务器查询某些信息和获取资源

11 HTTP协议和HTTPS协议区别

http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl 加 密传输协议。SSL协议可以对数据进行加密以及进行身份认证(HTTPS在进行连接的时候也要进行握手和挥手认证,不过握手时要进行身份验证,身份验证通过后传输数据都是加密的数据),所以https对比http更安全

http 和 https 使用的是不同的连接方式,用的默认端口也不一样,前者是 80, 后者是 443。 (这个只是默认端口不一样,实际上端口是可以改的) 

http是免费的,https是收费的,百度了下价格到几百到几万不等吧。

12 HTTP请求报文和HTTP响应报文构成

HTTP请求报文由四部分组成

1.请求行:由请求方法,请求地址(url),http协议版本

2.请求头:由各类属性组成

3.空行

4.请求体(body):如果是post方法,会把数据以key value形式发送请求

 

HTTP响应报文由四部分组成

1.响应行:由报文协议版本,状态码组成
2.响应头:由各类属性组成

3.空行

4.响应体:是服务器返回给客户端的文本信息。

如果没有空行,请求头有多行,区分不开请求头和请求体

 

整理django知识点

1.列举Http请求中常见的请求方式?GET向特定的路径资源发出请求,数据暴露在url中POST向指定路径资源提交数据进行处理请求(一般用于上传表单或者文件),数据包含在请求体中OPTIONS返回服务器针对特定资源所支持的HTTP请求方... 查看详情

wifi基本知识整理

...nbsp;        这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习。因为无线网络中涉及术语很多,并且许多协议都是用英文 查看详情

http协议和网络抓包资料整理

...络抓包为了方便大家使用,更加通俗的理解http的网络协议,建议做网络请求的时候,对每个请求抓包后查看请求信息和响应信息。这是网上一些关于Http协议的讲解关于HTTP协议,一篇就够了HTTP协议入门网络基础知... 查看详情

http协议进阶http概述

之前一段时间将http协议的一些基础的知识学习并且整理了笔记,发到了博客上,最近间歇性看更深入的一些关于http协议的东西,顺带也整理上来。。。。。。当然,可能有些内容会和之前的博客内容重叠,但基本都是在其基础... 查看详情

http协议整理

一、概念协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。HTTP协议,即超文本传输... 查看详情

http协议整理

一、概念1.HTTP协议:即超文本传输协议(Hypertexttransferprotocol)。是一种详细规定了浏览器和Web服务器之间互相通信的规则,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。它可以使浏览器更加高效,使网络传... 查看详情

http与https协议整理

http:超文本传输协议,是一个客户端到服务端请求与应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议https: 是以安全为目标的http通道,简单讲是http的安全版本,HTTPS下加入SSL层,HTTPS的安全基础是SSL,... 查看详情

http协议整理(代码片段)

一、概念1.HTTP协议:即超文本传输协议(Hypertexttransferprotocol)。是一种详细规定了浏览器和Web服务器之间互相通信的规则,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。它可以使浏览器更加高效,使网络传... 查看详情

wifi基本知识整理

...nbsp;        这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习。因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种... 查看详情

[http]高级基础知识整理(代码片段)

HTTP高级基础知识整理HTTP高级基础知识,包括Cookie/Session/localStorage/sessionStorage/Cache-Control/Expires/Etag等Cookiecookie:wikiCookie(复数形态Cookies),又称为“小甜饼”。中文名称为“小型文本文件”,指某些网站为了辨别用户身份而储... 查看详情

http协议相关知识点

主要参考 http://www.imooc.com/article/14397,来源:慕课网,作者种子_feHTTP是超文本传输协议,主要特点有:支持客户、服务器模式简单快速:客户向服务器请求服务时,只需传送请求方法和路径,而且HTTP协议简单,使得HTTP服务... 查看详情

http知识点总结篇

1、什么是HTTP协议?客户端和服务器之间数据传输的格式规范。全拼:HyperTextTransferProtocol:超文本传输协议。2、http协议是无状态协议?怎么解决无状态协议?无状态协议是对于事务处理没有记忆能力。解决方法:cookie 和&nbs... 查看详情

http协议的知识浅解

Http协议概念:规定被约束的对象需要遵守的规则!!!Http协议Http协议:超文本传输协议(Http:HyperTextTransferProtocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。HTTP协议的特点: *Http协议遵守一个请求... 查看详情

http协议

...tcp/ip协议:规则了tcp客户端与tcp服务器数据的通讯格式1.知识点是什么:http协议2.知识点有什么:规定浏览器与服务器(tcp服务器)之间的数据通讯格式3.请求的协议格式<客户端(浏览器)发数据给服务器>GET/index.htmlHTTP/1.1GET:请求... 查看详情

大前端学习笔记整理http协议以及http与https的区别

前言还是老样子,新博客开始前总是想先啰嗦几句...HTTP协议其实在当初学习java时老师就有提过...但是...反正就那么过去了...这段时间公司的项目正好要求做https的转换和迁移,然后自己思考了一下,好像自己对于http连一知半解... 查看详情

前端面试知识点梳理之四——http协议

一、相关问题http协议的主要特点http报文的组成部分http方法post与get的区别http状态码什么是持久连接什么是管线化二、问题解答1.http协议的主要特点无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请... 查看详情

http常见基础知识点

...,吃透http是很有必要的,下面是我对http协议的基本常用知识点总结。http简介简单来说,http(HyperTextTransferProtocol,超文本传输)协议就是用于客户端和服务器端之间的通信协议。 用送信来类比,客户端就是写信人,服务器端... 查看详情

网络协议知识点汇总,巩固你的http知识体系(代码片段)

文章目录前言一、HTTP协议✨1.HTTP的特点和缺点2.HTTP报文结构是怎样的3.常见的HTTP请求头和响应头HTTPRequestHeader常见的请求头HTTPResponsesHeader常见的响应头4.HTTP有哪些请求方法5.GET和POST请求的区别6.PUT和POST请求的区别7.OPTIONS请求方... 查看详情