免费的网站程序,做一个wordpress模板下载地址,什么是网络营销?网络营销与电子商务有什么区别?,期末作业做网站的心得体会UDP协议 UDP协议全称是用户数据报协议#xff0c;在网络中她与TCP协议一样用于处理数据包#xff0c;两个协议同处于协议栈的传输层#xff0c;和TCP不同的是#xff0c;UDP是一种无连接的协议栈。 因为UDP是无连接的#xff0c;所以相对来说#xff0c;UDP的报头比TCP要…UDP协议 UDP协议全称是用户数据报协议在网络中她与TCP协议一样用于处理数据包两个协议同处于协议栈的传输层和TCP不同的是UDP是一种无连接的协议栈。 因为UDP是无连接的所以相对来说UDP的报头比TCP要简单的多了。如下图 UDP特点 第一UDP是一个非连接的协议传输数据之前源端口和终端不建立连接当他想传送时就简单的去抓取来自应用城西的数据并尽可能快的把他扔在网络上在发送端UDP传送数据的速递仅仅是受应用程序生成数据的速度计算机的计算能力和传输带宽的现在在接受端UDP吧每个消息段放再队列中应用程序每次从队列中读一个消息段。由于传输数据不建立连接因此也就不需要维护连接状态包括收发状态等因此一天服务器可以同时向多个客户端传输相同的消息UDP信息包的标题短只有8字节相对于TCP的20字节信息包的额外开销很小吞吐量不受拥挤控制算法的调节只受应用软件生成数据的速率传输带宽源端和终端主机性能的限制UDP使用尽量大努力交付即不保证可靠交付因此主机不需要维持复杂的链接状态表这个表中有许多参数UDP是面向报文的发送方的UDP对应应用程序交下来的报文在添加首部后就向下交付给IP层即不拆分也不合并而是保留这些报文的边界因此应用程序需要选择合适的报文大小。 我们经常用PING命令来测试两台主机之间TCP/IP通信是否正常其实PING命令的原理就是向对方主机发送UDP数据包然后对方主机确认收到数据包如果数据包是否到达的信息及时反馈回来那么网络就是通的。
HTTP协议
HTTP协议名为超文本传输协议。这个协议在TCP/IP协议栈的应用层因此我们无需关系HTTP是如何传输的只需要看我们传输的内容能否正确的被接收端识别。HTTP是基于TCP实现的简单说来TCP协议负责可靠的内容传输HTTP协议负责识别内容两者本身不在一个层面没有可比性。HTTP是无状态的意思是每一次的内容解析是没有关联的。TCP有状态是指两端在连接过程的时候是有在连接中的状态HTTP包含两种报文类型请求报文响应报文。 请求报文用在客户端对服务器的请求时候使用的报文格式响应报文用在服务响应请求的报文格式
HTTP协议请求消息结构
客户端发生一个HTTP请求奥服务器的请求消息包括一下格式请求行request line请求头部header空行和请求数据四个部分组成下图给出了请求报文的一般格式。 如上图所示HTTP消息主要包含以下实质内容空格和换行也不能少 请求方法URL统一资源定位符HTTP请求头部HTTP请求体 以下是一个HTTP请求的例子从Fiddler抓包工具中抓出来的一个请求案例。
//1. post请求方法
//2. http://edu.zhenai.com/api/business/supremecourse/course.do请求URL
//3. HTTP/1.1HTTP协议以及版本
POST http://edu.zhenai.com/api/business/supremecourse/course.do HTTP/1.1
//以下报文头部
Cookie: token506188.1587368100293.ef83f599f1a54833d0cc5124da98140a.test; token506188.1587368100293.ef83f599f1a54833d0cc5124da98140a.test; sid88TIsgom9Xqw3GMLTDv0;
User-Agent: PostmanRuntime/7.25.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 4b0c8482-cce5-40e2-a7b9-a251378c6475
Host: edu.zhenai.com
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
zone: 1027071-liaojiamin
Host: edu.zhenai.com
//以下报文体
supremeCourseID129allowtrueHTTP请求方法
HTTP包含来多种不同的请求方法每一种请求方式用在不同的场景
序号方法描述1GET请求指定页面信息并放回实体主体2HEAD类似get请求不过返回的响应中没有具体的内容用于获取报头3POST向指定资源提交数据进行处理请求例如提交表达或者上传文件数据被包含在请求体中POST请求可能会操作新的资源的建立和/或已有资源的修改4PUT从客户端想服务器传送的数据取代指定的文档内容5DELETE请求服务器删除指定内容6CONNECTHTTP1.1协议中预留给能够将连接改为管道方式的代理服务器7OPTIONS允许客户端查看服务器的性能8TRACE回显服务器收到的请求主要用于测试或诊断
URL-- 统一资源定位符
URL由三部分组成资源类型存放资源的主机域名资源文件名URL的一般语法格式为带括号 [ ] 的是可选项目 protocol / hostname[:port] / path / [;parameters][?query]#fragment如上面HTTP请求案例中的URLhttp://edu.zhenai.com/api/business/supremecourse/course.dosupremeCourseID129allowtrue protocolhttphostnameedu.zhenai.comparameterssupremeCourseID129allowtruepathapi/business/supremecourse/course.do
HTTP请求头
请求头中主要包含本次请求的附加信息其中常用的字段如下 Accept指定客户端能够接受的内容类型Accept-Encoding指定浏览器可以支持的web服务器返回内容压缩编码类型Accept-Language浏览器可接受的语言Content-Length请求的内容长度如Content-Length348Content-Type请求的与实体对于的MIME信息常用的类型也有很多中如下表信息中列出Date请求发送日期和时间 更多的HTTP响应头和请求头信息对照表
//Content-type常用类型
text/htmlHTML格式
text/plain纯文本格式
text/xmlxml格式
image/gifgif图片格式
image/jpegjpg图片格式
image/pngpng图片格式
//以为application开头的媒体格式类型
application/xhtmlxmlXHTML格式
application/xmlxml数据格式
application/atomxmlatom xml聚合格式
application/pdfpdf格式
application/mswordword文档格式
application/octet-stream二进制流数据
application/x-www-form-urlencodedform表达数据被编码后送到服务器HTTP请求体
在整个报文中请求头之后隔一个空格以下部分就是HTTP的请求体。请求体是我们发送请求的时候需要传给接收端的内容。其格式需要和请求头中的Content-Type对应不日回导致接受无法识别。如上案例中的请求体supremeCourseID129allowtrue
HTTP响应
HTTP的响应统一分为响应行响应头响应体和请求报文有点类似。总体结构如下
// 状态行用于描述服务器对请求的处理结果
HTTP/1.1 200 OK
// 多个响应头响应头用于描述服务器的基本信息以及数据的描述服务器通过这些数据的描述信息可以通知客户端如何处理之后他返回的数据
Server: nginx/1.15.5
Date: Mon, 29 Jun 2020 13:31:00 GMT
Content-Type: application/json;charsetUTF-8
Connection: keep-alive
Vary: Accept-Encoding
Content-Disposition: inline;filenamef.txt
Content-Length: 2166// 此处保留一个空行
//实体内容代表服务器向客户端返回的数据信息。
{data:{msg:获取成功,......}HTTP响应行
响应行中包含来HTTP的版本和本次请求的状态请求状态的对于值见其他资源HTTP响应码
HTTP响应头
响应头用于描述服务器的基本信息数据的描述这些信息将告知客户端如何处理响应题中的内容 Allow服务器支持哪些请求方法GETPOSTContent-Encoding 文档的编码Encode方法。Content-Length 表示内容长度。Content-Type 表示后面的文档属于什么MIME类型。 更多的响应头字段参考资源HTTP响应头和请求头信息对照表
HTTP响应实体
响应实体中包含的就是客户端从服务器中获取的数据。数据的格式和长度都会在响应头中描述。
上一篇 网络编程-TCP/IP协议栈-TCP协议 下一篇 网络编程-HTTPS协议的实现原理