1、什么是TCP/IP
因为http是基于tcp协议上层协议,用到http就肯定用到了tcp,那么在这之前我们先了解下tcp
TCP/IP:TCP和IP是通过协同工作实现网络通信的功能,IP负责计算机之前的通信,TCP是负责软件之间的通信;
IP:ip是两台机器之间通信的坐标,用于计算机在internet进行身份识别,网络网络通过指定的IP把信息路由到目的地;IP只负责数据传输,不负责数的检验和数据包的拆分;所以就延伸出了传输控制协议:TCP:它和TCP协同工作,通常在IP后加上prot来指定对应的软件服务;
一个TCP协议请求的服务通过IP加端口找到对应目标计算机进行“握手”后TCP把数据拆分成多个IP包发送到目标,然后通过TCP进行数据检验,然后把数据包进行组装;
2、什么是http协议?
ttp(hyper tex transfer protocol) 术语为超文本传输协议在网络中以请求和应答(B/S)方式呈现浏览器向服务器发送请求,然后服务器进行应答结束连接,http是基于TCP/IP协议上层的一种数据传输协议,http是一种请求/响应式的协议(客户端与服务器建立连接后,客户单发送请求给服务器,服务器接收到请求后进行响应),简单来说http就是在网络进行数据传输中一种格式标准;
3、http协议的作用是什么?
明确网络中传输数据的格式协议,方便用户在网络中进行数据的传输和解析;
4、http有哪些特点?
(1)无状态:http是无状态协议(无状态:是指客户端和服务端不建立长连接,客户端发送请求服务器进行应答后连接就会关闭,对于服务器来说每次都是新的请求;有状态:是指服务器会记录上一次请求的状态并根据状态来调整本次请求的信息,之前的请求状态会影响后续的请求状态和信息;
(2)简单:客户端请求服务器服务时只需要请求路径和请求方法,http请求常用的方式有GET,POST,HEAD,每种方法规定了客户端与服务器产生的联系类型不同,http小而简单使得http程序规模小,通信速度快;
(3)灵活:http允许传输多种数据格式,传输类型由Content-type标记;
5、http工作流程
(1)解析地址:http://localhost:8080/login.jsp ,http为文本协议,localhost 为IP地址,8080为TCP端口 login.jsp为资源名称;
(2)建立tcp连接(3次握手);
(3)建立tcp连接后发起htpp请求;
(4)服务器通过协议解析数据包并响应请求;
(5)客户端解析数据渲染;
6、http请求/响应格式
转:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/28/2612910.html
7、TCP的三次握手:
引用一张比较形象的图
(1)第一次握手:客户端向服务端发送请求报文(SYN加上seq=x序列号),发送报文后客户端进入发送请求状态(SYN_SEND)等待服务器确认;
(2)第二次握手:服务端接收到客户端的请求报文后进行报文解析,然后组装报文(SYN 加上seq=y 序列号,加上根据客户端序列号生成确认号ACK=x+1 )向客户端发送确认报文,发送确认请求后服务器进入接收连接状态(SYN_RECV);
(3)第三次握手:客户端收到服务器的确认报文后进行解析,然后根据服务器的序列号生成确认报文ACK=y+1,报文发送后客户端服务端进行连接状态(ESTABLISHED)
8、TCP/IP的五层模型和七层模型