一、http协议
1.http 相关概念
-
互联网:是网络的网络,是所有类型网络的母集
-
因特网:世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上,大家把连接在因特网上的计算机都成为主机。
-
万维网:WWW(world wide web)万维网并非某种特殊的计算机网络,是一个大规模的、联机式的信息贮藏库,使用链接的方法能非常方便地从因特网上的一个站点访问另一个站点(超链技术),具有提供分布式服务的特点。万维网是一个分布式的超媒体系统,是超文本系统的扩充,基于B/S架构实现
-
URL:万维网使用统一资源定位符(Uniform Resource Locator)来标志万维网上的各种文档,并使每个文档在整个因特网的范围内具有唯一的标识符URL。
-
HTTP:为解决”用什么样的网络协议来实现整个因特网上的万维网文档”这一难题,就要使万维网客户程序(以浏览器为主,但不限于浏览器)与万维网服务器程序之间的交互遵守严格的协议,即超文本传送协议(HyperText Transfer Protocol)。HTTP是处于应用层的协议,使用TCP传输层协议进行可靠的传送。因此,需要特别提醒的是,万维网是基于因特网的一种广泛因特网应用系统,且万维网采用的是HTTP(80/TCP)和 HTTPS(443/TCP)的传输协议,但因特网还有其他的网络应用系统(如:FTP、SMTP等等)。
-
HTML:为了解决”怎样使不同作者创作的不同风格的万维网文档,都能在因特网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接”这一问题,万维网使用超文本标记语言(HyperText Markup Language),使得万维网页面的设计者可以很方便地用链接从页面的某处链接到因特网的任何一个万维网页面,并且能够在自己的主机品目上将这些页面显示出来。HTML与txt一样,仅仅是是一种文档,不同之处在于,这种文档专供于浏览器上为浏览器用户提供统一的界面呈现的统一规约。且具备结构化的特征,这是txt所不具备的强制规定。
2 .访问浏览器的过程
3.http 协议通信过程
HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。
HTTP是万维网的数据通信的基础,设计HTTP最初的目的是为了提供一种远距离共享知识的方式,借助多文档进行关联实现超文本,连成相互参阅的WWW(world wide web,万维网)
HTTP的发展是由蒂姆伯纳斯-李(Tim Berners-Lee)于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1版
2014年12月,互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组将HTTP/2标准提议递交至IESG进行讨论,于2015年2月17日被批准。 HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。
扩展网络通信,两台主机之间通信
[root@zzh ~]#yum 服务器托管网install nc -y
[root@zzh ~]#nc -l 8000
nihao
xia xue le
下雪了
#主机1 在监听 8000 端口
[root@centos7-2 ~]#nc 192.168.246.7 8000
nihao
xia xue le
下雪了
#主机2 去访问 主机1(服务端)的8000 端口 就可以聊天了
例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:
例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:
1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
2. 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
3. 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
4. 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
5. 释放 TCP连接;
6. 浏览器将该 html 文本并显示内容;
4 .HTTP 相关技术http: Hyper Text Transfer Protocol 应用层协议,默认端口: 80/tcp
①WEB前端开发语言:
-
html
Hyper Text Markup Language 超文本标记语言,编程语言,主要负责实现页面的结构
-
css
Cascading Style Sheet 层叠样式表, 定义了如何显示(装扮) HTML 元素,比如:字体大小和颜色属性等。样式通常保存在外部的 .css 文件中,用于存放一些HTML文件的公共属性,从而通过仅编辑一个简单的 CSS 文档,可以同时改变站点中所有页面的布局和外观
-
javascript
javascript,实现网页的动画效果,但实属于静态资源
②URI(i) 和 URL uri
URI: Uniform Resource Identifier 统一资源标识,分为URL 和 URN
-
URN:Uniform Resource Naming,统一资源命名
示例: P2P下载使用的磁力链接是URN的一种实现
magnet:?xt=urn:btih:660557A6890EF888666(只是描述了资源的名字,并没有明确该资源在哪里)
-
URL:Uniform Resorce Locator,统一资源定位符,用于描述某服务器某特定资源位置
两者区别:
-
URN如同一个人的名称,而URL代表一个人的住址。
-
URN定义某事物的身份,而URL提供查找该事物的方法。URN仅用于命名,而不指定地URL组成。
URL组成:
://:@:/;?#
scheme:方案,访问服务器以获取资源时要使用哪种协议
user:用户 (虚拟用户),某些方案访服务器托管网问资源时需要的用户名
password:密码,用户对应的密码,中间用:分隔
Host:主机,资源宿主服务器的主机名或IP地址
port:端口,资源宿主服务器正在监听的端口号,很多方案有默认端口号
path:路径,服务器资源的本地名,由一个/将其与前面的URL组件分隔
params:参数,指定输入的参数,参数为名/值对,多个参数,用;分隔
query:查询,传递参数给程序,如数据库,用?分隔,多个查询用&分隔
frag:片段,一小片或一部分资源的名字,此组件在客户端使用,用#分隔
③ MIME
MIME : Multipurpose Internet Mail Extensions 多用途互联网邮件扩展
文件 /etc/mime.types ,来自于mailcap包
MIME格式:type/subtype 主要类型/次要类型
④HTTP 请求访问的完整过程
建立连接
接收请求
处理请求
访问资源
构建响应报文
发送响应报文
记录日志
5.http协议及报文头部结构
报文由三个部分组成,即开始行、首部行和实体主体在请求报文中,开始行就是请求行。
方法:
-
GET: 获取资源 当前网络请求中,绝大部分使用的是 GET 方
-
HEAD: 获取报文首部,主要用于确认 URL 的有效性以及资源更新的日期时间等
-
POST: 传输实体主体 (比如传输 用户名密码)
-
PUT: 上传文件(比如写博客)
-
PATCH: 对资源进行部分修改
-
DELETE:删除文件
-
OPTIONS:查询支持的方法(查看服务端可以支持哪些方法)
-
CONNECT:要求在与代理服务器通信时建立隧道(类似加密)
-
TRACE:追踪路径
url:指明资源的具体位置
://:@:/;?#
scheme
-
http 超文本传输协议
-
https 安全的http协议
-
ftp 文件传输协议
-
user:帐号
-
password:密码
-
host:主机名 或 域名 或 ip地址
-
port: 服务器端口号
-
path:访问资源的路径,相当于组件路径
-
params:参数,但是这个不常用,指定一些参数,譬如指定传输方式
-
qurey:查询参数
-
frag:html资源片段,譬如html文档过大的时候,frag定位到html的一部分
下回分析
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net