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文件中实现了.然而,当我 ...
随机推荐
- IDEA+MAVEN构建一个webapp骨架项目(解决一直卡在downloading plugins for问题)
下载:链接:https://pan.baidu.com/s/1jJx73H8 密码:nud0 第一步 我在上面链接下载了这个骨架xml,放进本地(你的目录默认.m2)\repository\org ...
- 【luogu P3946 ことりのおやつ】 题解
题目链接:https://www.luogu.org/problemnew/show/P3946 交好几遍是因为虽然能过一直有提醒..强迫症qwq #include <bits/stdc++.h ...
- 【题解】洛谷P1541 [NOIP2010TG] 乌龟棋(类似背包的DP)
题目来源:洛谷P1541 思路 类似背包的题 总之就是四种卡牌取的先后顺序不同导致的最终ans不同 所以我们用一个四维数组每一维分别表示第几种取了几张的最大分数 然后就是简单DP解决 代码 #incl ...
- NopCommerce 3.4中移动端访问抛弃响应式布局
在Nop3.4中,他抛弃了原来的xxx.Mobile.cshtml的这种写法,而是采用了响应式布局,并且把规则也给改了,你在后台配置不启用响应式布局,在前台你仍然不能写xxx.Mobile.cshtm ...
- java多线程注意事项
1:继承thread和实现Runnable创建线程的区别: 继承thread创建的对象直接start()就可以就绪,但是使用Runnable所new出来的对象要先new Thread(xx)才能sta ...
- Adnroid studio 无法 Build APK(s)
报错 Error:java.nio.file.AccessDeniedException: C:\Program Files\Android\android-sdk-windows\.android\ ...
- 分享一个在js中判断数据是undefined,NaN,null,的技巧
教大家如何在js中判断一个值是否是undefined,null,NaN,以及如何单独判断 平常开发过程中大家可能遇到一种问题,就是取页面某个值的时候获取不到这个var就是undefined了,如果是数 ...
- layui sleect获取value值
<div class="layui-form-item"> <label for="username" class="layui-f ...
- Hive的安装与部署(MySQL作为元数据库)
Hive的安装与部署(MySQL作为元数据) (开始之前确保Hadoop环境已经启动,确保Linux下的MySQL已经安装好) 1. 安装Hive (1)下载安装包 可从apache上下载hi ...
- Spark Streaming job的生成及数据清理总结
关于这次总结还是要从一个bug说起....... 场景描述:项目的基本处理流程为:从文件系统读取每隔一分钟上传的日志并由Spark Streaming进行计算消费,最后将结果写入InfluxDB中,然 ...