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. 浅谈.NET,C#三层架构(自己总结)

     三层架构 常见架构: 三层(经典) MVC MVVM MVP   开发中常见的23种设计模式: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种: ...

  2. 【cocos2d-x 手游研发小技巧(6)聊天系统+字体高亮】

    转载请注明出处:http://www.cnblogs.com/zisou/p/cocos2dxJQ-6.html 聊天系统在手机网游中是最常见的交互工具,大家在一起边玩游戏边聊天岂不乐哉: 废话不多了 ...

  3. Android------------------的资源文件的学习

    一.style的学习 用法: 使用: 使用系统自带的style的风格 使用: 效果: 二.drawable的使用 selector是一个xml文件进行加载使用的: 文件名叫做buttonselecto ...

  4. JQuery - Ajax和Tomcat跨域请求问题解决方法!

    在JQuery里面使用Ajax和Tomcat服务器之间进行数据交互,遇到了跨域请求问题,无法成功得到想要的数据! 错误信息部分截图: 通过错误信息判断知道已经发生在Ajax跨域请求问题了! 当前Tom ...

  5. 使用hex编码绕过主机卫士IIS版本继续注入

    本文作者:非主流 测试文件的源码如下: 我们先直接加上单引号试试: http://192.168.0.20/conn.asp?id=1%27 很好,没有报错.那我们继续,and 1=1 和and 1= ...

  6. 酷!美国国家安全局(NSA)开源了逆向工程工具 Ghidra

    简评:2019 RSA 大会期间,NSA 正式发布了这个工具.免费 + 开源,真的有吸引力,据说体验可以和 IDA 一较高下. Ghidra 是由美国国家安全局(NSA)研究理事会创建和维护的软件逆向 ...

  7. Python小白学习之路(四)——第一次练习题

    写在前面: 今天下雪了呢!连着两天都没有更新学习记录. 我没有偷懒呢.做了一天的练习题,昨天学的内容还没总结完,太累了就回去睡觉了 连续一周早起,强大的内心也无法支撑我疲惫的身体 今天早起做了整理.加 ...

  8. JS:函数柯里化

    函数柯里化 柯里化 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术. 简单来说,就 ...

  9. activiti插件安装-离线安装

    直接选择离线安装,在线因为网络问题,一直提示失败. 一.下载插件Activiti BPMN 2.0 designer 链接: https://pan.baidu.com/s/1gKBHZFnmNJx7 ...

  10. vue 中使用 screenfull.js 全屏插件

    参考网址: https://blog.csdn.net/houyibing930920/article/details/89214200 https://www.jianshu.com/p/cfbb1 ...