网络编程,笔记

网络分层

  • 应用层,常见协议:HTTP、FTP
  • 传输层,常见协议:TCP.UDP
  • 网络层,常见协议:IP
  • 链路层
  • 物理层

 

协议

协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。

简单来说,协议就是 通信双方/多方都遵从共同的一个规范。

协议的一些特点:

  1. 协议中的每个人都必须了解协议,并且预先知道所要完成的所有的步骤。
  2. 协议中的每个人都必须同意并遵循它。
  3. 协议必须是清楚的,每一步必须明确定义,并且不会引起误解。

 

HTTP协议

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

HTTP协议永远都是客户端发起请求,服务器回送响应。

 

HTTP协议工作流程

  1. 客户端和服务器之间建立一条连接
  2. 连接建立后,客户端向服务器发起一个请求(request)
  3. 服务器收到一个请求后,给客户端一个响应(应答,response)
  4. 客户端收到响应后做进一步处理

 

HTTP是基于传输层的TCP协议,而TCP是一个端到端的面向连接的协议。所谓的端到端可以理解为进程到进程之间的通信。所以HTTP在开始传输之前,首先需要建立TCP连接,而TCP连接的过程需要所谓的“三次握手”。

 

TCP三次握手

  1. client向server发送TCP SYN报文段(指定初始序号,无数据)
  2. server收到SYN报文段,用SYN ACK报文段回复(server为该链接分配缓冲区;指定server初始序号)
  3. client接收到SYN ACK,用ACK报文段回复,可能包含数据

 

TCP四次挥手

  1. client发送一个FIN,用来关闭client到server的数据传送,client进入FIN_WAIT_1状态
  2. server收到FIN后发送一个ACK给client,server进入close_wait状态
  3. server发送一个FIN,用来关闭server到client的数据传送,server进入LAST_ACK状态
  4. client收到FIN后,进入TIME_WAIT状态,并发送一个ACK给server,server进入close状态。

 

HTTP主要特点

  1. 主持C/S(客户端/服务器)模式。
  2. 简单快速:客户端向服务器请求服务时,只需要传送请求方法和路径。请求方法常用的有GET、HEAD、POST,每种方法规定了客户端与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  3. 灵活:HTTP容许传输任意类型的数据对象。正在传输的类型由 Content-Type加以标记。
  4. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户端的请求,并收到客户端的应到后,立即断开连接,这种方式可以节省传输时间。
  5. 无状态:HTTP协议是无状态协议,无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则必须重传,这样可能导致每次连接传送的数据量增大;而另一方面,在服务器不需要先前信息时·他的应答速度就较快。

 

常见的HTTP请求方法

HTTP方法

作用描述

GET

客户端请求指定资源信息,服务器返回指定资源

HEAD

只请求响应报文中的HTTP首部

POST

将客户端的数据提交到服务器,例:注册表单

PUT

从客户端向服务器传送的数据取代指定的文档内容

DELETE

请求服务器删除Request-URI所标识的资源

MOVE

请求服务器将制定的页面移至另一个网络地址

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章