首页 > 编程知识 正文

HTTP 网络七层模型,网络七层模型口诀

时间:2023-05-03 14:42:07 阅读:184172 作者:2349

 

HTTP:

超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

 

HTTP是一个客户端和服务器端请求和应答的标准(TCP)。是基于请求响应模式的,客户端是终端用户,服务器端是网站。

通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。

客户端发送给服务器的格式教请求协议

服务器发送给客户端的格式叫响应协议

HTTP是无状态协议

FIP是有状态的

URL统一资源定位符,就是一个网址:协议名//域名,端口/路径。

请求协议格式:

请求首行 :请求方式/ 请求路径 /协议和版本

请求头信息 :请求头名称:请求头内容,即为key:value格式

空行 :用来与请求体隔开

请求体 :GET没有请求体 POST有请求体

如果不是这个格式服务无法解读,有很多请求方法,最常用的就是GET和POST。请求体就是发给服务器的数据,比如登陆账号,FROM表单,账号密码一般不会出现在URL里面,会放在请求体里面,所以GET没有请求体,POST有请求体

请求协议:

 

GET :

1默认的请求方式,

2没有请求体,

3数据在1K之内,

4请求数据会暴露在地址栏里

GET 127.0.0.1:8090/login  HTTP/1.1:GET请求,请求服务器路径为  127.0.0.1:8090/login ,协议为1.1;Host:localhost:请求的主机名为localhost;*User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0:与浏览器和OS相关的信息。有些网站会显示用户的系统版本和浏览器版本信息,这都是通过获取User-Agent头信息而来的; Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8:告诉服务器,当前客户端可以接收的文档类型,其实这里包含了*/*,就表示什么都可以接收;Accept-Language: zh-cn,zh;q=0.5:当前客户端支持的语言,可以在浏览器的工具选项中找到语言相关信息;Accept-Encoding: gzip, deflate:支持的压缩格式。数据在网络上传递时,可能服务器会把数据压缩后再发送;Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7:客户端支持的编码;Connection: keep-alive:客户端支持的链接方式,保持一段时间链接,默认为3000ms;Cookie: JSESSIONID=369766FDF6220F7803433C0B2DE36D98:因为不是第一次访问这个地址,所以会在请求中把上一次服务器响应中发送过来的Cookie在请求中一并发送去过;这个Cookie的名字为JSESSIONID

GET请求常用操作:

在浏览器的地址栏里直接给出URL

在页面上的超链接

提交表单时默认使用GET请求,但也可设置为POST

POST :

1数据不会出现在地址栏里,会在格式的请求头空格下面的请求体里

2数据大小没有上限

3有请求体

4请求体中如果有中文,会使用URL编码/ URL 统一资源定位符

如果我的参数值中就包含=或&这种特殊字符的时候,服务端会解析成两个键值对,这样就产生了奇异。 URL编码只是简单的在特殊字符的各个字节前加上%,例如,我们对上述会产生奇异的字符进行URL编码后结果:“name1=va%26lu%3D”,这样服务端会把紧跟在“%”后的字节当成普通的字节,就是不会把它当成各个参数或键值对的分隔符。

Content-Type: application/x-www-form-urlencoded:表单的数据类型,说明会使用url格式编码数据;url编码的数据都是以“%”为前缀,后面跟随两位的16进制。Content-Length:13:请求体的长度,这里表示13个字节。keyword=hello:请求体内容!hello是在表单中输入的数据,keyword是表单字段的名字。

referer:请求来自哪个页面,可以用来做统计工作,也可以做防盗链,比如在百度页面中的地址链接那么就有referer请求头,如果直接在浏览器的地址栏中直接输入的地址就没有这个请求头。

响应协议:

响应格式:

响应首行:

响应头信息:

空行:

响应体:响应内容时服务器发送给浏览器的内容,浏览器会根据内容来显示

HTTP/1.1 200 OK:响应协议为HTTP1.1,状态码为200,表示请求成功,OK是对状态码的解释;Server:WSGIServer/0.2 CPython/3.5.2:服务器的版本信息;Content-Type: text/html;charset=UTF-8:响应体使用的编码为UTF-8;Content-Length: 724:响应体为724字节;Set-Cookie: JSESSIONID=C97E2B4C55553EAB46079A4F263435A4; Path=/hello:响应给客户端的Cookie;Date: Wed, 25 Sep 2012 04:15:03 GMT:响应的时间,这可能会有8小时的时区差;状态码

响应头对浏览器来说很重要,它说明了响应的真正含义。例如200表示响应成功了,302表示重定向,这说明浏览器需要再发一个新的请求。

200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;500:请求资源找到了,但服务器内部出现了错误;302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址;304:服务器端会获取If-Modified-Since值,与index.html 的当前最后修改时间比对,如果相同,服务器会发响应码304,表示index.html与浏览器上次缓存的相 同,无需再次发送,浏览器可以显示自己的缓存页面,如果比对不同,那么说明index.html已经做了修 改,服务器会响应200。其他响应头

告诉浏览器不要缓存的响应头:

Expires: -1;Cache-Control: no-cache;Pragma: no-cache;

自动刷新响应头,浏览器会在3秒之后请求http://www.baidu.com:

Refresh: 3;url=http://www.baidu.com 

3.4 HTML中指定响应头

在HTMl页面中可以使用<meta http-equiv="" content="">来指定响应头,例如在index.html页面中给出<meta http-equiv="Refresh" content="3;url=http://www.baidu.com">,表示浏览器只会显示index.html页面3秒,然后自动跳转到http://www.baidu.com.

 

TCP协议:是面向连接的传输层协议。TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WAN)设计的,是以太网协议和 IP 协议的上层协议也是应用层协议的下层协议,以太网协议解决了局域网的点对点通信。但是,以太网协议不能解决多个局域网如何互通,这由 IP 协议解决IP 协议可以连接多个局域网,

IP 协议定义了一套自己的地址规则,称为 IP 地址。它实现了路由功能,允许某个局域网的 A 主机,向另一个局域网的 B 主机发送消息。按照域名去寻找服务器的IP地址---> DNS 把域名解析成IP地址

TCP 连接的端点叫做套接字(socket)或插口

 

HTTPS协议: 安全 加密的链接 访问的过程中不会发生变化 ,传输的过程中是加密的 别人无法获取

发送一个证书,用于身份的确认 保证没有第三方的篡改 默认端口443

OSI 网络7层模型:

 

物理层:建立、维护、断开物理连接

涉及到在信道上传输的原始比特流,设计师要保证一方发出二进制1,另一方收到的也是1,而不是0

至少要考虑的问题有:

1用多少伏电压表示1 用多少伏电压表示0

2一个比特持续的时间

3传输时单向还是双向

4物理连接如何建立和完成通信后链接如何停止

5接线器的形状尺寸引线数目等等

功能:

1为数据终端设备提供传送数据的通路,可以是一个或多个物理媒体

2传输数据:要形成数据传输需要的实体,传输方式满足一点到多点,串行或并行,同步或异步

链路层:数据连接层:建立逻辑连接、进行硬件地址寻址、差错效验等功能。

1差错检验和恢复:通过循环冗余码校验,通过反馈重发恢复错误

2流量控制:防止高速发送数据将低速接收方淹没

3链路链接建立和拆除

功能:两个相邻终结点间的线路传送数据,对网络层显现一条可靠的链路。加强了物理层传送比特功能

网络层::进行逻辑地址寻址,实现不同网络之间的路径选择。协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP

当数据终端增多时,会出现一台终端与多台终端通信,产生了把任意两台数据终端设备的数据链接起来,即路由选择

功能:

1路由选择

2网络链接激活与终止

3在一条数据链上复用多条网络连接

网络层设备主要有网关和路由器

传输层:定义传输数据的协议端口号,以及流控和差错效验。 协议有:TCP UDP

负责端到端的通信,是负责数据通信的最高层,是网络通信的低三层和面向信息处理的最高三层的中间层,是唯一负责总体数据传输和控制的最重要最关键的一层

功能:

1对进行对话或链接提供可靠得分传输服务

2为用户提供有效可靠价格合理的服务,向会话层提供独立于网路的传输服务

会话层:建立、管理、终止会话。(在五层模型里面已经合并到了应用层)

表示层:数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)

应用层:网络服务与最终用户的一个接口。协议有:HTTP FTP TFTP SMTP SNMP DNS

是最接近终端用户的OSI层,应用层与用户之间是通过软件直接相互作用的

功能:包括标识通信伙伴,定义资源的可用性和同步通信

 

在网络中依据数据传输的方式和结构发展出三种网络交换技术:

电路交换:实时链接,不具有记忆功能, 比如:电话

报文交换:非实时链接,具有存储记忆功能 , 比如:电子邮件

分组交换:

TCP:电路交换,独占信道宽带的一部分。面向链接适合传送大量数据

UDP:数据报交换,每个数据包独立传送,非面向连接有多条路径可以选择,不会发生堵塞, 比如:网上交谈

 

域名:

.com

.net

.cn 中国

,org 组织 orgnization

.gov 政府 govenment

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。