文档章节

快速了解HTTP

起点new
 起点new
发布于 2017/05/20 13:49
字数 1021
阅读 23
收藏 0

 

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的五层模型和七层模型

 

 

 

© 著作权归作者所有

起点new
粉丝 0
博文 11
码字总数 11812
作品 0
长沙
私信 提问
ArcGIS Runtime 快速入门

Esri几乎会为他的每一款产品提供快速入门的pdf,比如ArcGIS Server快速入门,ArcGIS SDE快速入门等,同样对于ArcGIS Runtime我们也提供一个快速入门的pdf,不同于以往的是这个pdf是有Esri中国...

长平狐
2012/11/28
157
0
RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-> “Tab”标签新增可“最大化”显示功能

  最大化工作区的功能是非常必要的,特别是当模块功能比较多时,把工作区最大的展现出来就变得很重要,RDIFramework.NET V3.2版本对工作区新增了最大化工作区功能,最大化工作区后如下图所...

80368704
2018/06/29
0
0
Flask-Security中文文档之快速入门

这是Flask-Security中文文档翻译第二波,再次声明,此中文文档全部由本人手撸翻译。。。 没看过第一波的,点击传送门Flask-Security中文文档之快速入门 后续文档持续更新。。。 快速起步 基础...

RW老白白
2017/12/03
0
0
基于 Spring Boot 的企业级快速开发脚手架 - SLife

SLife 是使用 Spring Boot 搭建的一个企业级快速开发脚手架。SLife 的目的是帮助初学者入门Spring boot 并能快速了解 一个web框架的快速搭建。同时帮助出创企业快速搭建属于自己的基础软件,...

jamen
2017/12/13
1K
0
[重磅新品]自动发现业务拓扑,精准定位根源问题

你永远无法从杂乱无章的关系中,快速找到解决问题的关键环节。一张清晰、准确的业务拓扑图是IT工作的开端,试想一下这样的情景: · 企业上新系统,跨应用系统之间的数据如何准确追踪? · ...

cloudwiseAPM
2016/12/13
341
2

没有更多内容

加载失败,请刷新页面

加载更多

Java编程学习-Java虚拟机(JVM)以及跨平台原理

相信大家已经了解到Java具有跨平台的特性,可以“一次编译,到处运行”,在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的。 那么,跨平台是怎样实现的呢?这...

Java领航员
15分钟前
0
0
学JFinal不迷路,JFinal优质资源列表(欢迎反馈更新)

学JFinal不迷路,记录一下JFinal相关的资源、产品、讲师等信息(所有信息排名不分先后)。 一、相关站点: 1、JFinal官网-问答、分享、文档、交流、俱乐部 http://www.jfinal.com 2 、JFina...

山东-小木
19分钟前
0
0
项目学习(2)-order-job

在当前的系统中,因为并发量并不高,服务之间发起异步请求或者异步调用时,没有使用到消息中间件。 而是在各个服务(子系统)的数据库中,创建了event_queue事件对列表和event_handler事件处...

太猪-YJ
27分钟前
0
0
gradle grovvy中的闭包

1. 无参数的闭包 //这b1就是一个闭包def b1={ println "hello b1"}//定义方法,包含闭包类型的参数def method1(Closure closure){closure()}//执行method1method1(b1) 执行结果 ...

edison_kwok
今天
3
0
基于Spring Boot + Dubbo的全链路日志追踪(一)

一、 概要 当前公司后端整体架构为:Spring Boot + Dubbo。由于早期项目进度等原因,对日志这块没有统一的规范,基本上是每个项目自己管自己的日志。这也对后面的问题排查带来了很大的困难,...

明天以后
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部