HTTP基本定义
一、网络的简单定义:
1、http:是www服务器传输超文本向本地浏览器的传输协议。(应用层)
2、IP:是计算机之间相互识别通信的机制。(网络层)
3、TCP:是应用层通信之间通信。(传输层)
IP是允许计算机相互传递消息的机制,在IP协议上加入TCP(传输控制协议)保证数据的正确性。
二、HTTP工作流程:
http://localhost.com:8080/index.html
(1)解析地址:
协议名:http
主机名:localhost.com
端口:8080
对象路径:/index.html
(2)封装http请求数据包
(3)封装成TCP包,建立TCP连接
(4)客户机发送请求命令
(5)服务器响应
(6)服务器关闭TCP连接
三、TCP三次握手
SYN(synchronouns)建立连接
ACK(acknowledgement )响应连接
ESTABLISHED(建立)
(1)客户端想服务器端发送SYN(syn=x)包,进入SYN-SEND状态,等待服务器响应。
(2)服务器接收到客户端的SYN包,必须确认客户端的SYN包(ack=x+1),向客户端发送SYN(syn=y)包,及SYN+ACK包,此时服务器端进入SYN-REV状态。
(3)客户端接收到SYN+ACK包,向服务器端发送确认ACK(ack=y+1)包,同时客户端和服务器端进入了ESTABLISHED状态,完成了三次握手。
确认号:其数值等于发送方的发送序号+1(即接收方期望接收的下一个序列号)。
四、TCP 与 UDP区别
1、TCP
优点:可靠、稳定,TCP传输数据之前会有TCP三次握手建立连接,而且在传递数据时会有确认、窗口、重传拥塞控制机制;传递数据后,会断开连接,来节约数据系统资源。
缺点:慢、效率低、占用资源、易被攻击。TCP建立连接之前要经过三次握手消耗时间,传递数据时,确认机制,重传机制,拥塞机制都需要消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。
2、UDP
优点: 快,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的相关的机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击……
缺点: 不可靠,不稳定 因为UDP在数据传递时,如果网络质量不好,就会很容易丢包。
3、TCP与UDP实际运用情况:
TCP: 当对网络通讯质量有要求且整个数据要准确无误的传递给对方,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。常见使用TCP协议的应用如下: 浏览器,用的HTTP FlashFXP,用的FTP Outlook,用的POP、SMTP Putty,用的Telnet、SSH QQ文件传输
UDP: 当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。 比如,日常生活中,常见使用UDP协议的应用如下: QQ语音 QQ视频 TFTP ……
五、HTTP与SOCKET区别
1、HTTP是短连接
2、socket长连接,接口
共同点是用TCP协议
HTTP基本定义的更多相关文章
- 超文本传输协议-HTTP/1.1
超文本传输协议-HTTP/1.1(修订版) ---译者:孙超进本协议不限流传发布.版权声明Copyright (C) The Internet Society (1999). All Rights R ...
- 【.net 深呼吸】细说CodeDom(4):类型定义
上一篇文章中说了命名空间,你猜猜接下来该说啥.是了,命名空间下面就是类型,知道了如何生成命名空间的定义代码,之后就该学会如何声明类型了. CLR的类型通常有这么几种:类.接口.结构.枚举.委托.是这么 ...
- 为.NET Core项目定义Item Template
作为这个星球上最强大的IDE,Visual Studio不仅仅提供了很多原生的特性,更重要的是它是一个可定制的IDE,比如自定义Project Template和Item Template就是一个非常 ...
- B样条基函数的定义和性质
定义:令U={u0,u1,…,um}是一个单调不减的实数序列,即ui≤ui+1,i=0,1,…,m-1.其中,ui称为节点,U称为节点矢量,用Ni,p(u)表示第i个p次(p+1阶)B样条基函数,其定 ...
- JavaScript 常量定义
相信同学们在看见这个标题的时候就一脸懵逼了,什么?JS能常量定义?别逗我好吗?确切的说,JS当中确实没有常量(ES6中好像有了常量定义的关键字),但是深入一下我们可以发现JS很多不为人知的性质,好好利 ...
- Objective-C枚举的几种定义方式与使用
假设我们需要表示网络连接状态,可以用下列枚举表示: enum CSConnectionState { CSConnectionStateDisconnected, CSConnectionStateC ...
- 深入理解javascript函数定义与函数作用域
最近在学习javascript的函数,函数是javascript的一等对象,想要学好javascript,就必须深刻理解函数.本人把思路整理成文章,一是为了加深自己函数的理解,二是给读者提供学习的途径 ...
- 编译器开发系列--Ocelot语言4.类型定义的检查
这里主要介绍一下检查循环定义的结构体.联合体.是对成员中包含自己本身的结构体.联合体进行检查.所谓"成员中包含自己本身",举例来说,就是指下面这样的定义. struct point ...
- JQuery插件定义
一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#"),$("."),写了几年就对别人说非常熟悉JQuery.我曾经也是这样的人 ...
- C++模板编程:如何使非通用的模板函数实现声明和定义分离
我们在编写C++类库时,为了隐藏实现,往往只能忍痛舍弃模版的强大特性.但如果我们只需要有限的几个类型的模版实现,并且不允许用户传入其他类型时,我们就可以将实例化的代码放在cpp文件中实现了.然而,当我 ...
随机推荐
- springboot之热部署
一.介绍: spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. 二 ...
- CPP-基础:互斥量
互斥量的用途和临界区很像.它与临界区的差别在于可以跨线程使用,可以用来同步进行多个线程间的数据访问,但是是以牺牲速度为代价的.只有临界区是非核心对象,那么互斥量就是一个核心对象了.核心对象的特点是有所 ...
- 【洛谷P2022】有趣的数
有趣的数 题目链接 首先求出1~k中有多少个在k前面的数的个数,若>m,则无解 比如12345,从第一位开始, 1 0~1 共2个 1-0+1 12 10~12共3个 12-10+1 1 ...
- React-Navigation web前端架构
React-Navigation 前端架构 准备 /*安装组件*/ npm install --save react-navigation npm install --save react-nativ ...
- Truncated class file 问题的解决
替换class 文件之后出现了 Truncated class file 问题,查找原因,可能是文件损坏,清理缓存可以解决 解决办法: 把tomcat的work目录直接删掉,让他重新启动.rm -r ...
- Extjs 环境安装【转】
Sencha Cmd安装 在使用前端框架ExtJs前,需对其环境加以部署,对自己的安装过程加以记录. 建议大家在安装时,最好使用VPN,个中缘由,生在跳槽的程序袁应该都懂吧.不然ruby相关命令执行时 ...
- 使用 jTessBoxEditor 生成 tesseract-orc 的字典
本文使用图片方式记录使用 jTessBoxEditor 一站式生成自动文件的方式 首先感谢 Tesseract OCR 讨论群 389402579 的管理员[创世倾城 QQ:457606663] 的帮 ...
- Tesseract-OCR 自动生成识别库的批处理
用Tesseract-OCR做识别库的时候,生成字典非常麻烦,就写了一个批处理,用来生成字典还是蛮方便的,希望大家有用,该批处理已经自动生成font_properties文件,各位无需手动创建 下载地 ...
- oracle编程300例-性能优化(一)
1.在SELECT语句中避免使用“*” 2.尽可能减小记录行数 3.使用rowid高效删除重复记录 实例: delete from stu s where s.rowid>(select min ...
- 『Python基础-9』元祖 (tuple)
『Python基础-9』元祖 (tuple) 目录: 元祖的基本概念 创建元祖 将列表转化为元组 查询元组 更新元组 删除元组 1. 元祖的基本概念 元祖可以理解为,不可变的列表 元祖使用小括号括起所 ...