网络跨域
网络是信息传输,接收,共享的虚拟平台 经过它把各个点,面,体的信息联系到一块儿,从而实现这些资源的共享 网络传输数据有必定的规则,这些规则咱们称为协议 HTTP协议就是其中的一种,并且使用最为频繁
计算机网络的七层协议浏览器
应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
DNS解析缓存
域名解析(主机名解析):经过主机名,最终获得该主机名对应的IP地址的过程 每一台计算机都有一个惟一的IP地址,计算机根据IP实现相互通讯 而咱们一般使用的域名更多的是为了方便记忆以及个性化须要,它并不能直接对应到的服务器IP,咱们须要通过DNS服务器去查找IP,这个根据域名找到IP地址的过程就是DNS解析
HTTP简介安全
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写 是用于从万维网服务器传输超文本到本地浏览器的传送协议 HTTP是基于TCP/IP通讯协议来传递数据(HTML 文件, 图片文件, 查询结果等) HTTP采用的是 请求/应答 方式来传递数据 HTTP协议的默认端口号为80 HTTPS协议的默认端口号为443 HTTP是应用层协议,主要解决如何包装数据
HTTP协议的约束服务器
约束了浏览器以何种格式向服务端发送数据 约束了服务器应该以何种格式来接受客户端发送的数据 约束了服务器应该以何种格式来反馈数据给浏览器 约束了浏览器应该以何种格式来接收服务器反馈的数据
HTTP交互特色cookie
浏览器给服务器发送数据(一次请求) 服务器给浏览器反馈数据(一次响应) 一次请求对应一次响应,屡次请求对应屡次响应
HTTP工做原理网络
HTTP协议工做于客户端-服务端架构上。 浏览器做为HTTP客户端经过URL向HTTP服务端即WEB服务器发送全部请求 Web服务器根据接收到的请求后,向客户端发送响应信息
网络请求与响应服务的过程
HTTP通讯机制session
HTTP通讯机制是在一次完整的HTTP通讯过程当中,Web浏览器与Web服务器之间将完成下列7个步骤: 1. 创建TCP链接 在HTTP工做开始以前,Web浏览器首先要经过网络与Web服务器创建TCP链接,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,所以Internet又被称做TCP/IP网络。 HTTP是比TCP更高层次的应用层协议,根据规则,低层协议创建以后才能进行更层协议的链接,所以,首先要创建TCP链接 通常TCP链接的端口号是80 2. Web浏览器向Web服务器发送请求命令 一旦创建了TCP链接,Web浏览器就会向Web服务器发送请求命令 例如:GET/sample/hello.jsp HTTP/1.1 3. Web浏览器发送请求头信息 浏览器发送其请求命令以后,还要以头信息的形式向Web服务器发送一些别的信息,以后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。 4. Web服务器应答 客户机向服务器发出请求后,服务器会向客户机回送应答,HTTP/1.1 200 OK 应答的第一部分是协议的版本号和应答状态码 5. Web服务器发送应答头信息 服务器随同应答向用户发送关于它本身的数据及被请求的文档。 6. Web服务器向浏览器发送数据 以Content-Type应答头信息所描述的格式发送用户所请求的实际数据 7. Web服务器关闭TCP链接 通常状况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP链接,而后若是浏览器或者服务器在其头信息加入了这行代码Connection:keep-alive TCP链接在发送后将仍然保持打开状态,因而,浏览器能够继续经过相同的链接发送请求。 保持链接节省了为每一个请求创建新链接所需的时间,还节约了网络带宽。
HTTP三个特色架构
1. HTTP是无链接:无链接的含义是限制每次链接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开链接。采用这种方式能够节省传输时间 2. HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据均可以经过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型(该资源的媒体类型) 3. HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺乏状态意味着若是后续处理须要前面的信息,则它必须重传,这样可能致使每次链接传送的数据量增大。另外一方面,在服务器不须要先前信息时它的应答就较快
HTTP消息结构并发
一个HTTP"客户端"是一个应用程序(Web浏览器或其余任何客户端),经过链接到服务器达到向服务器发送一个或多个HTTP的请求的目的 一个HTTP"服务器"一样也是一个应用程序(一般是一个Web服务,如Apache Web服务器或IIS服务器等),经过接收客户端的请求并向客户端发送HTTP响应数据 HTTP使用统一资源标识符(URI)来传输数据和创建链接 客户端请求消息: 客户端发送一个HTTP请求到服务器的请求消息包括如下四个部分: 请求行(request line) 请求头部(header) 空行 请求数据
服务器响应消息: HTTP响应也由四个部分组成: 状态行 消息报头 空行 响应正文
HTTP的九种请求类型
HTTP1.0 定义了三种请求方法:GET, POST 和 HEAD方法 HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法 经常使用: 1. GET:向特定的资源发出请求。(从服务器中获取一份文档) 2. POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会致使新的资源的建立和/或已有资源的修改。(向服务器发送须要处理的数据) 3. PUT:向指定资源位置上传其最新内容。(将请求的主题部分存储在服务器中) 4. PATCH:是对 PUT 方法的补充,用来对已知资源进行局部更新。 5. DELETE:请求服务器删除 Request-URI 所标识的资源。(从服务器中删除一份文档) 6. CONNECT:HTTP/1.1 协议中预留给可以将链接改成管道方式的代理服务器。 不经常使用: 1. OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也能够利用向Web服务器发送'*'的请求来测试服务器的功能性。(决定能够在服务器上执行的方法) 2. HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法能够在没必要传输整个响应内容的状况下,就能够获取包含在响应消息头中的元信息。(只从服务器获取头文档的首部) 3. TRACE:回显服务器收到的请求,主要用于测试或诊断。(对可能通过代理服务器传送到服务器上的报文进行追踪) 其实在实际应用中经常使用的是get和post 其余请求方式也均可以经过这两种方式间接的来实现 关于get请求的注意事项: get请求可被缓存 get请求保留在浏览器历史记录中 get请求可被收藏为书签 get请求不该在处理敏感数据时使用 get请求有长度限制 get请求只应当用于取回数据 关于post请求的注意事项: post请求不会被缓存 post请求不会保留在浏览器历史记录中 post请求不可被收藏为书签 post请求对数据长度没有要求 比较get请求和post请求:
HTTP响应头的信息
HTTP状态码
常见的状态码: 200 - 请求成功(通常用于get和post方法)(描述:OK) 301 - 资源(网页等)被永久转移到其它URL,浏览器自动跳转到新的URL(描述:Moved Permanently) 304 - 所请求资源未修改,浏览器读取缓存信息(描述:Not Modified) 400 - 请求语法错误,服务器没法解析(描述:Bad Request) 404 - 请求的资源(网页等)不存在,未找到资源(描述:Not Found) 500 - 内部服务器错误(描述:Internal Server Error) HTTP状态码分类:
HTTP状态码列表:
关于HTTP的Content-type
Content-Type用于定义网络文件的类型和网页的编码。决定浏览器将以什么形式、什么编码读取这个文件 Content-Type标头告诉客户端实际返回的内容的内容类型 语法格式:
一些媒体格式类型:
HTTP---Cookie
HTTP Cookie(也叫Web cookie或者浏览器Cookie)是服务器发送到用户浏览器并保存在浏览器上的一块数据,它会在浏览器下一次发起请求时被携带并发送到服务器上。 比较经典的,能够用它来肯定两次请求是否来自于同一个浏览器,从而可以确认和保持用户的登陆状态。 Cookie的使用使得基于无状态的HTTP协议上记录稳定的状态信息成为了可能。 cookie的属性: 1. key-value:cookie经过key-value的方式存储属性名和值。 2. domain:规定了须要发送Cookie的主机名。若是没有指定,默认为当前的文档地址上的主机名(可是不包含子域名)。若是指定了Domain,则通常包含子域名。 3. path:Path指令代表须要发送Cookie的URL路径。字符%x2F (即"/")用作文件夹分隔符,子文件夹也会被匹配到。 4. hostOnly:布尔型的值,true表示cookie只能匹配domain中指定好的请求路径。反之则不。 5. httpOnly:HTTP-only类型的Cookie不能使用Javascript经过Document.cookie属性来访问,从而可以在必定程度上阻止跨域脚本攻击(XSS)。 6. secure:布尔型的值,true表示cookie只在安全的状况下有效。通常是在https状况下。即在使用SLL和HTTPS协议向服务器发起请求时,才能确保Cookie被安全地发送到服务器。 7. expirationDate:指明cookie的过时的时间。 8. Max-Age:指明cookie的有效期。 9. session:布尔值,true表示cookie是session cookie。false的话表示持续的cookie且不过时。 10. storeId:表明存放cookie的id的字符串。
关于HTTPS协议
HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,所以加密的详细内容就须要SSL。 https协议须要到ca申请证书,通常免费证书不多,须要交费。http是超文本传输协议,信息是明文传输,https则是具备安全性的ssl加密传输协议http和https使用的是彻底不一样的链接方式用的端口也不同,http是80,https是443。 客户端产生一个对称的密钥,经过server的证书来交换密钥。通常意义上的握手过程,加下来全部的信息往来就都是加密的。第三方即便截获,也没有任何意义,由于他没有密钥 HTTPS协议是在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通讯加密,安全性会更高。
关于HTTP2.0
HTTP 2.0是1999年HTTP/1.1发布后的下一代HTTP协议,在开放互联网上HTTP 2.0将只用于https://网址,而http://网址将继续使用HTTP/1 相比 HTTP/1.x,HTTP 2.0有不少新特性: 1. 二进制分帧层:HTTP 2.0增长了一个二进制分帧层,改进了传输性能,实现了低延迟和高吞吐量。 2. 压缩头部:对请求头进行了压缩,相同的请求不会在头部带上未改变的属性。 3. 多路复用:能够链接发起多重的请求,HTTP1中的keep-alive用于长链接而没必要从新创建链接,然而keep-alive必须等本次请求完全完成后才能发送下一个请求,而HTTP2的请求与响应以二进制帧的形式交错进行,大大提升了效率。 4. 请求优先:能够对资源的下载顺序进行排序。 5. 服务端推送:能够将资源主动推送给客户端。
关于TCP/IP协议
TPC/IP协议是传输层协议,主要解决数据如何在网络中传输 TCP/IP 是用于因特网(Internet)的通讯协议 在 TCP/IP 中包含一系列用于处理数据通讯的协议: 1. TCP (传输控制协议) - 应用程序之间通讯 2. UDP (用户数据报协议) - 应用程序之间的简单通讯 3. IP (网际协议) - 计算机之间的通讯 4. ICMP (因特网消息控制协议) - 针对错误和状态 5. DHCP (动态主机配置协议) - 针对动态寻址 TCP 使用固定的链接: TCP 用于应用程序之间的通讯。 当应用程序但愿经过 TCP 与另外一个应用程序通讯时,它会发送一个通讯请求 这个请求必须被送到一个确切的地址。在双方"握手"以后,TCP 将在两个应用程序之间创建一个全双工的通讯 这个全双工的通讯将占用两个计算机之间的通讯线路,直到它被一方或双方关闭为止 UDP 和 TCP 很类似,可是UDP更简单,同时可靠性低于 TCP IP 是无链接的: IP 用于计算机之间的通讯 IP 是无链接的通讯协议。它不会占用两个正在通讯的计算机之间的通讯线路。这样,IP 就下降了对网络线路的需求。每条线能够同时知足许多不一样的计算机之间的通讯须要 经过 IP,消息(或者其余数据)被分割为小的独立的包,并经过因特网在计算机之间传送 IP 负责将每一个包路由至它的目的地 当一个 IP 包从一台计算机被发送,它会到达一个 IP 路由器 IP 路由器负责将这个包路由至它的目的地,直接地或者经过其余的路由器 在一个相同的通讯中,一个包所经由的路径可能会和其余的包不一样。而路由器负责根据通讯量、网络中的错误或者其余参数来进行正确地寻址 TCP/IP 意味着 TCP 和 IP 在一块儿协同工做 TCP 负责应用软件(好比您的浏览器)和网络软件之间的通讯 IP 负责计算机之间的通讯 TCP 负责将数据分割并装入 IP 包,而后在它们到达的时候从新组合它们 IP 负责将包发送至接受者
TCP/IP寻址
TCP/IP 使用32个比特(4字节)或者4组0到255之间的数字来为计算机编址 IP 地址包含4组数字: TCP/IP 使用4组数字来为计算机编址。每一个计算机必须有一个惟一的 4 组数字的地址 每组数字必须在0到255之间,并由点号隔开,好比:192.168.1.60
IP V6
称做:下一代互联网协议 由IETF小组设计的用来替代现行的IPv4协议的一种新的IP协议 IP地址用一个32位二进制的数表示一个主机号码,但32位地址资源有限,已经不能知足用户的需求了,所以Internet研究组织发布新的主机标识方法,即IPv6 在RFC1884中,规定的标准语法建议把 IPv6 地址的 128 位(16 个字节)写成 8 个 16 位的无符号整数,每一个整数用 4 个十六进制位表示,这些数之间用冒号(:)分开 例如:686E:8C64:FFFF:FFFF:0:1180:96A:FFFF 冒号十六进制记法容许零压缩,即一串连续的0能够用一对冒号取代 为了保证零压缩有一个清晰的解释,建议中规定,在任一地址中,只能使用一次零压缩
TCP/IP包括的协议
TCP/IP是基于TCP和IP这两个最初的协议之上的不一样的通讯协议的大集合 包括如下协议:
TCP/IP---邮件
电子邮件程序使用不一样的TCP/IP协议: 使用SMTP来发送邮件 使用POP从邮件服务器下载邮件 使用IMAP链接到邮件服务器
TCP/IP和其余的协议在最初OSI模型中的位置