一、web及网络基础
1、HTTP的历史
1.1、HTTP的概念:
HTTP(Hyper Text Transfer Protocol,超文本传输协议)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
它是一个应用层协议,承载于TCP之上。由请求和响应构成,是一个标准的客户端服务器模型
1.2、HTTP的发展历史:
作为Web文档传输协议的HTTP,它的版本更新十分缓慢,目前只更新了三个版本:
HTTP/0.9: 1990年,并未建立标准
HTTP/1.0: 1996年5月,
HTTP/1.1: 1997年1月,目前主流的HTTP版本
1.2、HTTP在Web应用中的重要性:
HTTP协议是整个Web基础,许多应用都离不开对HTTP协议的认识:
WebService = HTTP + XML
Reset = HTTP + JSON
各种API的实现:HTTP + XML/JSON
采集、小偷站
QQ、迅雷等桌面应用软件
2、网络基础TCP/IP协议
2.1、协议的概念:
协议是指计算机通信网络中,两台计算机进行通信,所必须遵循的规定或规则。
计算机网络中有各种各样的协议,比如TCP协议、IP协议、HTTP协议、FTP协议等等,像这样把与互联网相关联的协议集合起来,就成为TCP/IP协议族。
2.2、TCP/IP的分层管理
应用层:负责处理特定的应用程序,如FTP、DNS、HTTP等。
传输层:对上层应用层提供处于网络连接中两台计算机之间的数据连接。该层有两种协议:TCP和UDP。
网络层:处理网络上流动的数据报。该层协议有:IP、ICMP、IGMP。
数据链路层:处理连接网络的硬件部分。包括操作系统、硬件设备驱动、网卡、光纤等。
2.3、TCP/IP通信传输流程
3、IP、TCP、DNS与HTTP的密切关系
3.1、IP协议的概念与作用
IP(Internet Protocol),网际协议,位于网络层
把各种数据包传送给对方。最重要的两个条件是IP地址和MAC地址(MAC地址基本不会改变,但可以通过软件改变)
ARP地址解析协议:根据IP地址查出MAC地址
3.2、TCP协议的概念与作用
TCP(Transmission Control Protocol),传输控制协议,位于传输层。
提供可靠的字节流服务,通过三次握手策略
3.3、TCP协议的三次握手过程
3.4、DNS的概念与作用
DNS(Domain Name System),域名解析系统,位于应用层。
提供域名到IP地址之间的解析服务
3.5、HTTP与TCP、IP和DNS的关系
HTTP生成请求报文需要通过DNS解析出IP找到服务器,通过TCP传输请求。
4、URI和URL的概念
4.1、URI的概念:
URI(Uniform Resource Identifier),统一资源标识符,是一个用于标识某一互联网资源名称的字符串。
4.2、URL的概念:
URL(Uniform Resource Location),统一资源定位符,它描述一台特定服务器上某特定资源的特定位置。
4.3、URI与URL的关系:
URI用字符串标识某一互联网资源,而URL代表资源的地址,由此可见,URL是URI的子集。
URI由两个主要的子集URL和URN构成
4.4、URI的格式,由9部分构成
http:协议方案名,获取资源是要指定协议类型
user:pass:登录信息(认证),指定用户名和密码,可选。
www.example.com:服务器地址
80:端口号,可选
/home/index.html:文件路径
age=11:参数组件,为应用程序提供访问资源所需的附加信息
查询字符串:针对已指定的文件路径内的资源,可以使用查询字符串穿入任意参数,可选(分页case)
mask:片段标识符,通常可标记出已获取资源中的子资源(文档内的某一个位置),可选
二、细说HTTP的报文格式和工作流程
1、HTTP请求报文和响应报文的格式
1.1、HTTP事务和报文流的概念
HTTP事务 = 请求命令 + 响应结果
1.2、请求报文的格式(抓包工具,fiddler)
请求行: 请求方式(大写) 请求URL 版本
请求首部: 名: 值
空行:
报文主体:
请求首部也叫消息头,其中字段名不区分大小写,习惯驼峰式,字段可按任意顺序排列,有些可接受多个值选项,有些字段可出现多次
1.2.1、请求方式:GET、POST、HEAD、OPTIONS、DELETE、PUT
默认发GET请求,如在浏览器直接输入地址访问,点超链接访问都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。
POST与GET方式的区别:传递参数的方式;传递数据量大小
1.2.2、常用请求头:
Accept: 浏览器可接受的MIME类型 */* (大类型)/(小类型)
Accept-Charset:告诉服务器,浏览器支持哪种字符集
Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip
Accept-Language:浏览器所希望的语言种类
Host:初始URL中的主机和端口
Referer:包含一个URL,用户从该URL代表的页面发出访问当前请求的页面
Content-Type:内容类型
If-Modified-Since:值为一个GMT标准时间,如果在该时间到目前,请求文件没有更改,则服务器告诉浏览器可以直接从缓存中读取文件
User-Agent:用户的浏览器类型,操作系统等信息
Content-Length:表示请求消息正文的长度
Connection:如果值为Keep-Alive,表示需要持久连接,HTTP 1.1默认进行持久连接
Cookie:这是最重要的请求头信息之一,但是由于该技术存在安全隐患等原因,该功能被Session取代
Date:值为GMT时间,表示请求时间
1.3、响应报文的格式
响应行: 协议版本 状态码 原因短语
响应首部:
空行:
报文主体:
1.3.1、状态码:用于表示服务器对请求的各种不同处理结果和状态,它是一个三位的十进制数。响应状态码分为5类:
1.3.2、常用状态码:
200:正常
301:永久重定向
302/307:临时重定向
304:未修改,可以使用缓存,无需再次修改
404:资源找不到
500:服务器内部错误
1.3.3、常用响应头:
Server:apache tomcat 指示服务器的类型
Content-Encoding: gzip 服务器发送数据采用的编码类型
Content-Length:80 告诉浏览器正文的长度
Content-Language:zh-cn 服务器发送的文本的语言
Content-Type:text/html;charset=GB2312 服务器发送内容的MIME类型
Last-Modified:GMT时间 文件最后修改的时间
Content-Disposition:attachment;filename=aaa.zip 指示客户端下载文件
Set-Cookie:SS=Q0=5Lb_nQ;path=/search 服务器发送的Cookie
Expires: GMT时间 表示过期时间,其值为0或-1表示禁止缓存
Cache-Control:no-cache(1.1) 表示进制缓存
Connection:close/Keep-Alive
Date: GMT时间
2、HTTP的工作流程
2.1、整个流程步骤
2.2、域名解析过程
2.3、三次握手过程
2.4、发起HTTP请求
2.5、响应HTTP请求并得到HTML代码
2.6、浏览器解析HTML代码
2.7、浏览器对页面进行渲染呈现给用户
3、HTTP1.0与HTTP1.1的区别
3.1、HTTP1.0的基本运行方式:
一个事务分为四个过程:建立连接、浏览器发出请求信息、服务器发出响应信息、关闭连接。
每次连接只处理一个请求和响应。对每一个文件的访问,浏览器与服务器都要建立一次单独的连接
3.2、HTTP1.1的特点
在一个TCP连接上可以传送锁哥HTTP请求和响应
多个请求和响应过程可以重叠
增加了更多的请求头和响应头,比如Host、If-Unmodified-Since请求头等
4、使用Telnet连接的实例
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。为用户提供了在本地计算机上完成远程主机工作的能力。
在终端电脑上使用telnet程序,用它连接到服务器
参见:http://www.cnblogs.com/rocomp/p/4803864.html
- TCP协议通讯工作原理
TCP协议通讯工作原理 一.TCP三次握手 传输控制协议(Transport Control Protocol)是一种面向连接的,可靠的传输层协议.面向连接是指一次正常的TCP传输需要通过在TCP ...
- SPI协议及工作原理分析
说明.文章摘自:SPI协议及其工作原理分析 http://blog.csdn.net/skyflying2012/article/details/11710801 一.概述. SPI, Serial ...
- @清晰掉 spi协议及工作原理分析
说明.文章摘自:SPI协议及其工作原理浅析 http://bbs.chinaunix.net/thread-1916003-1-1.html 一.概述. SPI, Serial Perripheral ...
- FTP协议及工作原理
1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...
- FTP协议及工作原理详解
1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...
- Windows下ARP协议的工作原理简介
ARP协议(Address Resolve Protocol,地址解析协议)工作在TCP/IP协议的第二层-数据链路层,用于将IP地址转换为网络接口的硬件地址(媒体访问控制地址,即MAC地址). ...
- SPI协议及其工作原理浅析
转载自:http://bbs.chinaunix.net/thread-1916003-1-1.html一.概述. SPI, Serial Perripheral Interface, 串行外围设备接 ...
- SPI协议及其工作原理浅析【转】
转自:http://www.laoliu-soft.net/category/tech_chap/tech_linux/ 一.概述. SPI, Serial Perripheral Interface ...
- 描述ARP协议的工作原理,怎么实施ARP攻击和防御ARP攻击
什么是ARP协议?ARP,即地址解析协议,实现通过IP地址得知其物理地址.在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址.为了让报文在 ...
- SPI协议及其工作原理详解
一.概述. SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术. SPI 总线在物理上是通过接在外围设备微控 ...
随机推荐
- Andrew Ng机器学习课程笔记--week5(上)
Neural Networks: Learning 内容较多,故分成上下两篇文章. 一.内容概要 Cost Function and Backpropagation Cost Function Bac ...
- js小知识-数组去重
查看zepto源码时,看到它的数组去重写法非常简单.下面是代码 var uq = function(array){ return [].filter.call(array,function(item, ...
- Core Graphics框架
在iOS中常用的框架是Quartz 2D,它是Core Graphics框架的一部分,是一个强大的二维图像绘制引擎.我们日常开发所用到的UIKit的组件都是由Core Graphics框架进行绘制的. ...
- java‘小秘密’系列(三)---HashMap
java'小秘密'系列(三)---HashMap java基础系列 java'小秘密'系列(一)---String.StringBuffer.StringBuilder java'小秘密'系列(二)- ...
- POI单元格添加公式以及读取公式结果的值
POI提供了为单元格添加条件样式的方法,但是我并没有找到获取单元格改变后样式的方法,获取到样式依旧是没有改变之前的. 比如为单元格添加条件样式用于监听单元格值是否被修改,如果单元格值被修改那么字体颜色 ...
- ctf常见php弱类型分析
1. 布尔反序列化 $unserialize_str = $_POST['password']; $data_unserialize = unserialize($unserialize_str); ...
- 关于Java的发展前景
各位看官觉得Java还能火几年?未来的发展方向是什么?
- 浅谈如何用Java操作MongoDB
NoSQL数据库因其可扩展性使其变得越来越流行,利用NoSQL数据库可以给你带来更多的好处,MongoDB是一个用C++编写的可度可扩展性的开源NoSQL数据库.本文主要讲述如何使用Java操作Mon ...
- ios 初体验<UILabel控件>
创建控件: UILabel *label = [[UILabel alloc]init]; //设置控件大小 label.frame = CGRectMake(50,100,300,40);//分别为 ...
- C# 获取exe、dll中的图标,支持获取256x256分辨率
在网上找过许多文章,都没有成功获取过大图标,只能获取最大32x32.最后自己尝试了相关的windows api,终于找到一个可用的. 主要用到的C++的PrivateExtractIcons函数,具体 ...