TCP/IP 是互联网相关的各类协议族的总称,并且进行分层,分为应用层,传输层,网络层,数据链路层这四层协议,分层的好处,是便于后期的优化与改进,扩展性好
应用层:主要为客户提供应用服务,
                比如:FTP(File Transfer Protocol 文件传输协议),
                           DNS(Domain Name System 域名解析系统)
                           HTTP
传输层:主要是服务器之间数据的传输
                 比如:TCP(Transmission Control Protocol 传输控制协议)
                            UDP(User Data Protocol 用户数据协议)
网络层:处理在网络中的数据包,数据包是网络传输最小的数据单位,决定使用怎样的传输路线进行传输 可能中间设计多个计算机,要决定怎么进行传输,要怎样进行中转
              比如:IP(Internet Protocol)协议
链路层:数据链路层,网络接口层,主要用来连接网络的硬件部分,操作系统啊,网卡啊,光纤啊等
 
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。这种把数据信息包装起来的做法称为封装(encapsulate)

IP协议:IP协议的作用就是保证数据包的传输,在进行传输的时候,依赖IP地址与MAC(Media Access Control Address)地址。
MAC地址:指的是网卡所属的固定地址,IP地址与MAC地址进行配对,一般MAC地址不会进行更换在进行网络中进行传输的时候,可能会涉及多台计算器和网络中转,在中转的时候会利用MAC地址进行转换下一个中转目标,使用的协议是ARP协议。
ARP协议:是进行解析地址的协议,可以通过IP找到对应的MAC。
这种利用ARP协议通过IP地址,进行解析到MAC地址,然后进行中转传输数据,最终跟对方服务器进行通信的机制,可以看成是路由选择。
 
 

 
TCP协议:TCP协议是位于传输层的协议,在进行数据的传输的时候,为了更好地发送数据,会将打的数据进行切割成小的数据包,数据包是以报文段为单位的,并有三次握手,进行保证传输的安全性,第一次会有SYN 标记,接收端会发送一个SYN+ACK的标记返回,然后客户端回传一个ACK标记的数据,在进行接收的时候又会对数据包进行重组
 
 对于HTTP请求方式有如下:
  Get:获取资源
  Post:传输实体
  Put:传输文件
  Head: 获取报文首部,不返回报文主体,用于确认URI的    有效期与资源更新的 日期
  Delete:删除文件
  Options:询问支持的方法
  Trace:追踪路径,请求经过了哪些操作
  Connect:与代理服务器进行连接点时候建立隧道,实现用隧道进行TCP通信
 
HTTP/1.0 和 HTTP/1.1 支持的方法:
 

HTTP对于服务端连接的问题与优化:

1,Http是无状态的,优点是:可以减少服务器的内存与CPU的开销
       解决方案:为了记住通讯,加上了cookie与Session
2,Http每一次通信都会创建于关闭TCP
       解决方案:    保持会话进行持久连接,keep-alive,只要任意一端没有提出断开,就继续保持连接
      :持久连接旨在建立 1 次 TCP 连接后进行多次请求和响应的交互
3,一次请求必须等待响应才能进行二次请求
      解决方案:在持久连接的接触上,可以实现管线化方式发送,可以不用等待响应,直接发送请求
 
 
 
                                                           
 
 
 
 
 

网络基础1_TCP和HTTP的更多相关文章

  1. 前端学HTTP之网络基础

    × 目录 [1]网络 [2]OSI [3]TCP/IP 前面的话 HTTP协议对于前端工程师是非常重要的.我们在浏览网站时,访问的每一个WEB页面都需要使用HTTP协议实现.如果不了解HTTP协议,就 ...

  2. 开发人员必读openstack网络基础

    云计算中的网络非常复杂,需要对网络的基础理论有一定的认识和了解,转载网上针对openstack中涉及到网络概念的文章 开发人员必读openstack网络基础1:什么是L2.L3 开发人员必读opens ...

  3. iOS网络基础知识

    iOS网络基础知识 1.一次HTTP请求的完整过程 (1)浏览器或应用发起Http请求,请求包含Http请求Http(请求),地址(url),协议(Http1.1)请求为头部 (2)web服务器接收到 ...

  4. 网络基础:NetBIOS

    网络基础小补. 利用 NetBIOS 名称与其他计算机通信 网络中的计算机之间必须知道IP地址后才能相互通信.但对人来说IP难以记忆,NetBIOS计算机名称比较容易记忆.当计算机使用 NetBIOS ...

  5. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  6. 网络基础知识、ASP.NET 核心知识(1)*

    为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...

  7. Java 网络编程(一) 网络基础知识

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951826.html 网络基础知识 网络编程的目的:直接或间接地通过网络协议与其他计算机 ...

  8. Linux网络基础配置

    这是看itercast视频的笔记 Linux网络基础配置 以太网连接 在Linux中,以太网接口被命令为:eth0, eth1等, 0,1代表网卡编号 通过lspci命令可以查看网上硬件信息(如果是u ...

  9. Linux网络服务01——Linux网络基础设置

    Linux网络服务01--Linux网络基础设置 一.查看及测试网络 1.使用ifconfig命令查看网络接口 (1)查看活动的网络接口 ifconfig命令 [root@crushlinux ~]# ...

随机推荐

  1. easyui-layout系列之表单一(2)

    表单在我们的开发过程非常的常见,easyUI给我们提供了非常方便快捷的表单开发工具,使用熟练可以大大的提高后台开发速度,非常有必要熟练掌握. 1.Textbox-文本框 扩展自$.fn.validat ...

  2. gridview获取选中行索引及当前行数据

    gridview获取选中行索引及当前行数据 一.非直接绑定数据: <!--前台传值--> <asp:TemplateField HeaderText="操作"&g ...

  3. 编码CODING

    摘自(复制)于海燕博客: http://www.cnblogs.com/haiyan123/p/7230533.html 1.内存和硬盘都是用来存储的. CPU:速度快 硬盘:永久保存 2.文本编辑器 ...

  4. 红黑树的实现——c++

    红黑树介绍参考上一篇. 1. 基本定义 enum RBTColor{RED, BLACK}; template <class T> class RBTNode{ public: RBTCo ...

  5. 【learning】微信跳一跳辅助c++详解 轻松上万 【上】

    写在前面 17年年底Wechat出了这个跳一跳的小游戏,今年2月份的时候简单地玩了一下,发现被游戏虐了(手太残了只能跳20多).     今天刚好有点空,于是就花了一个下午的时间写了一个跳一跳的c++ ...

  6. 使用ggbio在R中制作弦图

    分享一个制作弦图的R包:ggbio. 以下是一个简单的使用实例,效果图和代码如下. library(GenomicRanges) set.seed(1) N <- 100 gr <- GR ...

  7. Scrapy源码注解--CookiesMiddleware

    class CookiesMiddleware(object): """ 中间件在Scrapy启动时实例化.其中jars属性是一个默认值为CookieJar对象的dict ...

  8. 利用BitviseSSH免root实现Windows vs Linux的文件互传

    虚拟机截图,,,质量有点差,大家看看! ------------------- 在拿不到Linux root账户的情况下,winscp等工具是无法实现文件传输的,此时我们可以借用Bitvise SSH ...

  9. 搜集C++实现的线程池

    现在很多语言都内置了线程池实现,但C++中却没有.本文列举一些C++实现的线程池工具. Boost.Threadpool 项目首页:http://threadpool.sourceforge.net ...

  10. 在Vue的webpack中结合runder函数

    在Vue的webpack中结合runder函数 1.引入: <h1>下面是vue的内容:</h1> <div id="app"> <log ...