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. Docker registry 私有仓库镜像查询、删除、上传、下载 shell

    #Docker官方私有仓库registry #官方只提供了API接口,不方便使用,就写了个shell #docker-registry安装配置http://www.cnblogs.com/elvi/p ...

  2. MySQL(存储过程,支持事务操作)

    day61 保存在MySQL上的一个别名   >   一坨SQL语句 -- delimiter // -- create procedure p1() -- BEGIN -- select * ...

  3. zoj4019 Schrödinger's Knapsack(dp)

    题意:有两种物品分别为n,m个,每种物品对应价值k1,k2.有一个容量为c的背包,每次将一个物品放入背包所获取的价值为k1/k2*放入物品后的剩余体积.求问所获取的最大价值. 整体来看,优先放入体积较 ...

  4. NLP1 —— Python自然语言处理环境搭建

    最近开始研究自然语言处理了,所以准备好好学习一下,就跟着<Python自然语言处理>这本书,边学边整理吧 安装 Mac里面自带了python2.7,所以直接安装nltk就可以了. 默认执行 ...

  5. 看linux正在运行的服务用哪个命令?

    https://zhidao.baidu.com/question/117779006.html 查看服务进程:ps aux查看服务cpu利用:top查看服务对应端口:netstat -nlp pst ...

  6. SELECT 三级联动 [转]

    <!DOCTYPE html> <html> <head> <meta charset=gbk /> <title>selectList&l ...

  7. 【wepy实战】wepy搭建完整项目

    使用小程序框架wepy,搭建完整实战项目.文章将从项目结构.配置.模块等进行逐步分析和学习. 文章适合小程序开发新手以及有经验的小程序developer,不喜勿喷,不吝赐教! 本文为作者原创,转发请标 ...

  8. 手机端API接口验证及参数签名验证

    问题背景: 后端服务对手机APP端开放API,没有基本的校验就是裸奔,别人抓取接口后容易恶意请求,不要求严格的做的安全,但是简单的基础安全屏障是要建立的,再配合HTTPS使用,这样使后端服务尽可能的安 ...

  9. 干货 | 自适应大邻域搜索(Adaptive Large Neighborhood Search)入门到精通超详细解析-概念篇

    01 首先来区分几个概念 关于neighborhood serach,这里有好多种衍生和变种出来的胡里花俏的算法.大家在上网搜索的过程中可能看到什么Large Neighborhood Serach, ...

  10. leetcode-166-分数到小数(用余数判断有没有出现小数的循环体)

    题目描述:   给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数. 如果小数部分为循环小数,则将循环的部分括在括号内. 示例 1: 输入: n ...