第一章

了解Web及网络基础

*HTTP(HyperText Transfer Protocal, 超文本传输协议),可以说,Web是建立在HTTP协议上通信的。

*3项WWW(World Wide Web ,万维网)构建技术,分别是:把SGML(Standard Generalize Markup Language,标准通用标记语言)作文页面的文本标记语言的HTML(HyperText Markup Language,超文本标记语言);作为作为文档传递协议的HTTP;指定文档所在地址的URL(Uniform Resource Locator,统一资源定位符)。

*通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的,而HTTP属于它内部的一个子集。

*TCP/IP是互联网相关的各类协议族的总称。

*不同的硬件,操作系统之间的通信,所有的这一切都需要一种规则,而我们把这种规则称之为协议(Protocol)

*TCP/IP协议族按层次分为:应用层,传输层,网络层,数据链路层。

*层次化的好处是,当某个地方需要改变设计时,就必须把所有部分整体替换掉,而分层后只需把变动的层替换掉即可。

  应用层:决定了向用户提供应用服务时通信的活动。

  比如FTP(File Transfer Protocol,文件传输协议)和DNS(Domain Name System,域名系统) HTTP协议也处于该层

  传输层:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。

  在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol,用户数据报协议)

  网络层(又名网络互连层):网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方计算机,并把数据包传送给对方。

  网络层的作用是在众多的选项内选择一条传输路线。

  链路层(又名数据链路层,网络接口层):用来处理链接网络的硬件部分。

*利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层网上走。

*发送端在曾与层之间传输数据时,每经过一层时必定被打上一个该层所属的首部信息。反之,接收端在曾与层传输数据时,每经过一层时会把对应的首部消去。

 这种把数据信息包装起来的做法称为封装(encapsulate)

*IP(Internet Protocol)网际协议,位于网络层。作用是把各种数据传送给对方,其中两个重要的条件是IP地址和MAC地址(Media Access Control Address)

IP地址可变化,但MAC地址基本不会更改。

*ARP协议(Address Resolution Protocol)。ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。

 因为一般通信的双方不再同一个局域网,所以通常需要经过多台计算机和网络设备中专,中转时,会利用下一站中转设备的MAC地址来搜索下一个中专目标。

*TCP,位于传输层,提供可靠的字节流服务。

*DNS(Domain Name System)服务,位于应用层。提供域名到IP地址之间的解析服务。

DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。

*URI(统一资源标识符Uniform Resource Identifier)

URL(统一资源定位符 Uniform Resource Locator)

URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置)。可见URL是URI的子集。

第二章

简单的HTTP协议

*请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。

*HTTP是一种不保存状态,即无状态(stateless)协议。  就不做持久化处理。

*为了实现期望的保持状态功能而引用了Cookie技术。有了Cookie再用HTTP协议通信,就可以管理状态了。

*HTTP方法

GET:获取资源

  请求的资源是文本,就保持原样返回。如果是像CGI(Common Gateway Interface,通用网关接口)那样的程序,则返回经过执行后的输出结果。

POST:传输实体主体

PUT:传输文件

HEAD:获得报文首部

DELETE:删除文件

OPTIONS:询问支持的方法

TRACE:追踪路径

CONNECT:要求用隧道协议连接代理

*HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接。

为了解决上述TCP问题 ,持久连接(HTTP Persistent Connections,也称为HTTP keep-alive或者HTTP connection reuse)的方法。持久连接的特点:只要任一一端没有明确提出断开连接,则保持TCP连接状态。

*因为HTTP是无状态,无法记住登录状态,优点是减少服务器CPU及内存资源的消耗。为了解决这个问题。引入了Cookie技术,

在请求和响应报文中写入Cookie来控制客户端的状态。

Cookie会根据从服务端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。下次再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后再发送出去。

图解HTTP 2/11的更多相关文章

  1. 图解HTTP 6/11

    第三章 HTTP报文内的HTTP信息 1.用于http协议交互的信息被称为HTTP报文.请求端(客户端)的HTTP报文叫做请求报文,响应端(服务器端 )的叫做响应报文. 2.请求报文的结构 请求行:包 ...

  2. Qt5.7学习

    一 Qt简介(Build your world with Qt) 二 Qt5.7.0的安装 三 Qt系统构造库及常用类 四 信号(signal)与槽(slot)通信机制 五 QtDesigner开发工 ...

  3. 大数据技术之_16_Scala学习_08_数据结构(下)-集合操作+模式匹配

    第十一章 数据结构(下)-集合操作11.1 集合元素的映射-map11.1.1 map 映射函数的操作11.1.2 高阶函数基本使用案例1+案例211.1.3 使用 map 映射函数来解决11.1.4 ...

  4. js中排序方法sort() 和 reverse()

    reverse() 作用:反转原数组. 用法: array.reverse(); 图解: sort() 作用:对原数组进行排序.默认将每个数组项 先 转换为字符串 再 进行字符串对比后升序排序. 用法 ...

  5. Java教程-修炼

    在2020这个特殊的时期,在家就是为国家做贡献!一切都会好起来的,加油中国!! Java 第一章 Java概述 1.1 Java历史 1.2 Java语言最主要的特点 1.3 Java环境搭建 1.3 ...

  6. 自学Java第五章——《面向对象的基本特征》

    面向对象的基本特征: 1.封装 2.继承 3.多态 6.1 封装 1.好处: (1)隐藏实现细节,方便使用者使用 (2)安全,可以控制可见范围 2.如何实现封装? 通过权限修饰符 面试题:请按照可见范 ...

  7. AI 音辨世界:艺术小白的我,靠这个AI模型,速识音乐流派选择音乐 ⛵

    作者:韩信子@ShowMeAI 数据分析实战系列:https://www.showmeai.tech/tutorials/40 机器学习实战系列:https://www.showmeai.tech/t ...

  8. 地区sql

    /*Navicat MySQL Data Transfer Source Server : localhostSource Server Version : 50136Source Host : lo ...

  9. (转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)

    干货 | 图解LSTM神经网络架构及其11种变体(附论文) 2016-10-02 机器之心 选自FastML 作者:Zygmunt Z. 机器之心编译  参与:老红.李亚洲 就像雨季后非洲大草原许多野 ...

随机推荐

  1. Java面向对象(一)类和对象

    面向过程和面向对象的区别 面向过程,强调的是功能行为,是将实现一个功能的步骤编写在一个函数中,以函数为最小单位. 面向对象,是将需要的功能封装进一个对象中,使一个对象具有很多的功能特征,以类/对象为最 ...

  2. 一.1搭建跨平台的统一python开发环境

    搭建跨平台的统一python开发环境: 使用开发环境的好处: 可不用在服务器上直接修改源代码---写的代码首先得入版本库(放git或giitlab中),在本地写代码提交到git中.然后在服务器上git ...

  3. visual studio 项目中使用EF创建的数据库,后续更新数据库操作(生产已经部署,不能删除数据库重新创建)

    情景:SharePoint项目(其他类型的项目道理也一样),数据库是用EF(版本:6.0.0.0)创建的,生产环境已经使用,所以后续修改数据库,只能通过更新来实现. 下面是具体的操作方式: 1.vis ...

  4. 一个ioc例子jdk和spring版本导致问题

    今天橘子松在做一个简单例子的时候,出现bug让我久久找了半小时... 天啊 不会吧 错误如下:   java.lang.NoSuchMethodError: org.springframework.a ...

  5. 火车运输(最大生成树+lca) 洛谷P1967

    货车运输 题目描述 \(A\) 国有 \(n\) 座城市,编号从 \(1\) 到 \(n\) ,城市之间有 \(m\) 条双向道路.每一条道路对车辆都有重量限制,简称限重. 现在有 \(q\) 辆货车 ...

  6. HDU 5961 传递 题解

    题目 我们称一个有向图G是 传递的,当且仅当对任意三个不同的顶点a,,若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c. 我们称图G是一个 竞赛图,当且仅当它是一个有向图且它的 ...

  7. lombok使用指南,代码极简工具

    我们的项目中会用到各种bean,比如vo,bo,dto等等,bean上的属性我们一般写get(),set()方法,整个java文件看起来很臃肿. 一.简介 我们今天介绍的lombok只用使用注解就可以 ...

  8. 题解:2018级算法第五次上机 C5-图2

    题目描述: 样例: 实现解释: 所有结点对最短路径的板子题 知识点: 寻找所有结点对最短路径,动态规划 坑点: 无坑,注意建边即可 使用的算法为floyd算法 按照程序顺序解释如下: 首先建图,以邻接 ...

  9. A Broken Calculator 最详细的解题报告

    题目来源:A Broken Calculator 题目如下(链接有可能无法访问): A Broken Calculator Time limit : 2sec / Stack limit : 256M ...

  10. hihoCoder 1039 字符消除 最详细的解题报告

    题目来源:字符消除 解题思路: 1.在给定字符串中的任意位置插入'A'.'B'.'C'中的任意一个字符,然后计算插入后的字符经过消除后最短的字符串长度: 2.在计算字符消除后最短长度时,智能一遍一遍的 ...