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

HTTP, 网络七层模型相关推荐

  1. 转: 深入浅出-网络七层模型

    转自 深入浅出-网络七层模型 - sunsky303 - 博客园引言 今天回顾一下--网络七层模型&&网络数据包 网络基本概念 OSI模型 OSI 模型(Open System Int ...

  2. Lesson 002 —— 网络七层模型

    Lesson 002 -- 网络七层模型 互联网的本质就是一系列网络协议.OSI(open system interconnect 开放系统互联)七层协议 或 tcp/ip 五层 或 tcp/ip 四 ...

  3. 网络七层模型和对应协议的通俗理解

    文章目录 1.七层.五层.四层模型划分 2.记忆口诀 3.各层的协议 4.OSI 七层模型的通俗理解 4.1.需求1: 4.2. 需求2: 4.3.需求3: 4.4. 需求4: 4.5.需求5: 4. ...

  4. 网络七层模型与物联网三层模型

    前言 学安全,基础知识还是得要学习学习的吧. 网络七层模型 OSI参考模型全称是开放系统互连参考模型(Open System Interconnection Reference Model).这一参考 ...

  5. 深入浅出-网络七层模型以及libcurl的使用博客地址

    深入浅出-网络七层模型 引言今天回顾一下--网络七层模型&&网络数据包网络基本概念OSI模型OSI 模型(Open System Interconnection model)是一个由国 ...

  6. OSI网络七层模型和各层协议总结

    OSI网络七层模型: 7应用层: 规定通信协议:为用户的应用程序和各种网络服务之间提供相应的接口 (协议) 常见网络服务:www.Email.FTP, 6表示层: 把己方要发送的数据信息,翻译成对方表 ...

  7. linux网络全局 之 含网络七层模型

    原文链接:https://blog.csdn.net/qq_28090573/article/details/89351234 一.网络七层模型 1.OSI的来源 OSI(Open System In ...

  8. 初识网络基础《网络七层模型详解》

    坚持原创输出,点击蓝字关注我吧 图片来自网络 目录 一.初识网络基础 二.网络七层模型详解 1.物理层 2.数据链路层 3.网络层 4.传输层 5.会话层 6.表示层 7.应用层 三.总结 一.初识网 ...

  9. 网络七层模型-理解及总结

    网络七层模型-理解及总结 引言 初识网络七层模型基本概念 引言 本文主要对网络七层模型做一个总结,便于后期查询与理解,如有不正确的地方请指正. 初识网络七层模型基本概念 OSI模型 OSI 模型(Op ...

  10. 网络基础:ISO网络七层模型

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

最新文章

  1. Citrix Avalon安装实验手册之一----Avalon概述及实验环境准备
  2. DCMTK:测试ConcatenationCreator类
  3. android fitsSystemWindows的使用
  4. AsyncTask的理解
  5. oracle估算大小,Oracle 估算數據庫大小的方法
  6. 工作378-封装axios方法
  7. JAVA ulimit,java-从linux中的jvm中查找硬打开和软打开文件限制(ulimit -n和ulimit -Hn)
  8. 基于arm-linux的防火墙设计,基于ARM9的Linux驱动开发及防火墙设计
  9. MySQL自定义函数(四十六)
  10. SignalR入门之Hub
  11. 同一个项目的同一DLL多版本的兼容问题
  12. 计算机维护工作周报,运维周报怎么写呀,这一周没什么事做
  13. L2:Abbott隐式格式有限差分法解一维明渠非恒定流
  14. linux 消息队列API
  15. 钉钉打新债自动提醒-python
  16. 边境的悍匪—机器学习实战:第十七章 使用自动编码器和GAN的表征学习和生成学习
  17. XElement.Load 需要释放吗_蚕茧能清洁毛孔吗 蚕茧护肤的正确方法速Get√|蚕茧|清洁-爱美·BEAUTY...
  18. Unity shader护盾特效
  19. 写在汶川地震发生之后的思考
  20. 通达信公式-接近均线

热门文章

  1. 新装Win7 x64用Windows Update安装IE9一直失败的解决方法
  2. 日媒:唏嘘 美国雅虎自毁前程的3个误判
  3. hfss和python接口_【技术分享】python和HFSS联合仿真微带天线的教程
  4. 【HPE】3D HPE调研
  5. 金融银行产品培训推广PPT模板-优页文档
  6. 【附源码】计算机毕业设计java校园舆情监控系统设计与实现
  7. 采用灰度分组统计方法实现图像中值滤波
  8. kali 2018.1 64位 linux 安装谷歌中文输入法
  9. 3.4 以最快的方式完成应用通道的创建
  10. 提高github和amazonaws下载速度