网络协议笔记(一):HTTP协议基础知识

(一)HTTP协议是什么html

一、HTTP协议是超文本传输协议,也就是 HyperText Transfer Protocol。
二、HTTP是一个用在计算机世界里的协议。它使用计算机可以理解的语言确立了一种计算机之间交流通讯的规范,以及相关的各类控制和错误处理方式。(协议)
三、HTTP是一个在计算机世界里专门用来两点之间传输数据的约定和规范 (传输)web

总结:
HTTP是一个在计算机世界两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。 (这里的两点指:一、服务器和服务器之间 二、浏览器和服务器之间)编程

(二)CDN浏览器

浏览器一般不会直接连到服务器,中间会通过“重重关卡”,其中的一个重要角色就叫作 CDN。
CDN,全称是“Content Delivery Network”,翻译过来就是“内容分发网络”。它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。缓存

(三)HTML服务器

HTML是HTTP协议传输的主要内容之一,它描述了超文本页面,用各类“标签”定义文字、图片等资源和排版布局,最终由浏览器“渲染”出可视化页面。网络

(四)Web Service架构

Web  Service 是一种由 W3C 定义的应用服务开发规范,使用 client-server 主从架构,一般使用 WSDL 定义服务接口,使用 HTTP 协议传输 XML 或 SOAP 消息,也就是说,它是一个基于 Web(HTTP)的服务架构技术,既能够运行在内网,也能够在适当保护后运行在外网。(它是一个基于 Web(HTTP)的服务架构技术)app

由于采用了 HTTP 协议传输数据,因此在 Web  Service 架构里服务器和客户端能够采用不一样的操做系统或编程语言开发。例如服务器端用 Linux+Java,客户端用 Windows+C#,具备跨平台跨语言的优势。编程语言

(五)与HTTP相关的协议

一、TCP/IP 协议

    TCP/IP 协议其实是一系列网络通讯协议的统称,其中最核心的两个协议是 TCP 和 IP,其余的还有 UDP、ICMP、ARP 等等,共同构成了一个复杂但有层次的协议栈。

二、DNS

     (1)“域名系统”(Domain Name System)用有意义的名字来做为 IP 地址的等价替代。

     (2)在DNS中,”域名“又被称为”主机名“(Host)

     (3) DNS用.分隔成多个单词,级别从左到右逐级升高,最右边的被称为”顶级域名“。例如:表明商业公司的”com"、表示教育机构的“edu”等。

     (4)想要使用 TCP/IP 协议来通讯仍然要使用 IP 地址,因此须要把域名作一个转换,“映射”到它的真实 IP,这就是所谓的“域名解析”。

三、URI/URL

      URI(Uniform Resource Identifier),中文名称是 统一资源标识符,使用它就可以惟一地标记互联网上资源。

      URI 另外一个更经常使用的表现形式是 URL(Uniform Resource Locator), 统一资源定位符,也就是咱们俗称的“网址”,它其实是 URI 的一个子集,不过由于这二者几乎是相同的,差别不大,因此一般不会作严格的区分。

      例如:http://www.javashuo.com/article/p-sptbvwgy-nt.html
      能够看到,URI 主要有三个基本的部分构成:
           (1)、协议名:即访问该资源应当使用的协议,在这里是“https”;
           (2)、主机名:即互联网上主机的标记,能够是域名或 IP 地址,在这里是“www.cnblogs.com”;
           (3)、路径:即资源在主机上的位置,使用“/”分隔多级目录,在这里是“/simple-free/p/12901831.html”。

四、HTTPS

     HTTPS是运行在SSL/TLS协议上的HTTP,至关于“HTTP+SSL/TLS+TCP/IP”

     SSL 的全称是“Secure Socket Layer”,由网景公司发明,当发展到 3.0 时被标准化,更名为 TLS,即“Transport Layer Security”,但因为历史的缘由仍是有不少人称之为 SSL/TLS,或者直接简称为 SSL。

五、代理

    代理(proxy)是HTTP协议中请求方和应答方中间的一个环节,做为“中转站”,既能够转发客户端的请求,也能够转发服务器的应答。

(六)域名解析

 www.cnblogs.com  : 

一、com:顶级域名
二、cnblogs:二级域名
三、www:主机名

例如如今要访问 www.cnblogs.com ,域名解析过程为:

一、访问根域名服务器,它会告诉你“com”顶级域名服务器的地址;
二、访问“com”顶级域名服务器,它再告诉你“cnblogs.com ”域名服务器的地址;
三、最后访问“apple.com”域名服务器,就获得了“www.cnblogs.com  ”的地址。

DNS 是一个树状的分布式查询系统,但为了提升查询效率,外围有多级的缓存;因此更具体的说,域名解析过程应该是

一、查找浏览器DNS缓存
二、查找操做系统DNS缓存
三、在hosts文件中查找域名记录
四、在一些大公司、网络运营商的DNS缓存中去查找(非权威域名服务器)
五、都不存在再根据上述步骤进行解析

即:浏览器缓存->操做系统dnscache ->hosts文件->非权威域名服务器->根域名服务器->顶级域名服务器->二级域名服务器->权威域名服务器。

(七)  键入网址,按下回车发生了什么

若是网址的主机部分是IP地址:

 一、创建与web服务器的TCP链接:浏览器依照TCP协议的规范,使用“三次握手”创建与web服务器的链接 (通过SYN、SYN/ACK、ACK三个包)

 二、HTTP协议开始工做:浏览器按照HTTP协议的格式,经过 TCP 发送 HTTP的请求报文

 三、WEB服务器回复:在 TCP 协议层面确认:“刚才的报文我已经收到了”,不过这个 TCP 包 HTTP 协议是看不见的。

四、WEB服务器解析报文并回复:

        (1)依据HTTP协议的规定,解析报文,看浏览器发送的请求是想作什么

        (2)根据请求的须要进行处理,再拼成符合HTTP格式的报文发回给客户端。

五、浏览器回复:浏览器也要给服务器回复一个 TCP 的 ACK 确认,“你的响应报文收到了,多谢”

六、浏览器解析报文:调用JS引擎、排版引擎等进行处理,渲染成咱们看到的页面。

若是网址的主机部分是域名:那么就会多一个域名解析过程,根据上面的步骤,找到域名对应的IP地址后,再经过“三次握手”创建TCP链接等等。

(八)HTTP协议报文  

一、起始行(start line):描述请求或响应的基本信息;
二、头部字段集合(header):使用 key-value 形式更详细地说明报文;
三、消息正文(entity):实际传输的数据,它不必定是纯文本,能够是图片、视频等二进制数据。

前两部分起始行和头部字段常常又合称为“请求头”或“响应头”,消息正文又称为“实体”,但与“header”对应,不少时候就直接称为“body”。

HTTP 协议规定报文必须有 header,但能够没有 body,并且在 header 以后必需要有一个“空行”,也就是“CRLF”,十六进制的“0D0A”。

(九)URI的组成

scheme ://  host:port  path ? query。    例如:https://zzk.cnblogs.com/s?t=b&w=ce

scheme: 协议名或方案名,如HTPP/HTTPS/FTP等

host:port: 资源所在主机名,一般是主机名+端口号

path: 标记资源所在位置

query:多个key=value的格式,以“&”符号链接

(十)HTTP协议请求方法

一、GET:获取资源,能够理解为读取或者下载数据;二、HEAD:获取资源的元信息;三、POST:向资源提交数据,至关于写入或上传数据;四、PUT:相似 POST;五、DELETE:删除资源;六、CONNECT:创建特殊的链接隧道;七、OPTIONS:列出可对资源实行的方法;八、TRACE:追踪请求 - 响应的传输路径。

相关文章
相关标签/搜索