0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通信协议中的HTTP、TCP、UDP你了解多少(上)

jf_78858299 来源:Java架构技术 作者:Java架构技术 2023-02-13 14:19 次阅读

TCP HTTP UDP:

都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务。

TCP HTTP UDP三者的关系:

TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。

在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。

在传输层中有TCP协议与UDP协议。

在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。

因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。

socket:

这是为了实现以上的通信过程而建立成来的通信管道,其真实的代表是客户端和服务器端的一个通信进程,双方进程通过socket进行通信,而通信的规则采用指定的协议。socket只是一种连接模式,不是协议,tcp、udp,简单的说(虽然不准确)是两个最基本的协议,很多其它协议都是基于这两个协议如,http就是基于tcp的,.用socket可以创建tcp连接,也可以创建udp连接,这意味着,用socket可以创建任何协议的连接,因为其它协议都是基于此的。

下面我们主要来看一下和我们互联网生活密切相关的协议:HTTP

什么是Http协议

HTTP全称是HyperText Transfer Protocal,即:超文本传输协议,从1990年开始就在WWW上广泛应用,是现今在WWW上应用最多的协议, Http是应用层协议,当你上网浏览网页的时候,浏览器和Web服务器之间就会通过HTTP在Internet上进行数据的发送和接收。Http是一个基于请求/响应模式的、无状态的协议。即我们通常所说的Request/Response。

URL:

URL(Uniform Resource Locator) 地址用于描述一个网络上的资源, 基本格式如下

schema://host[:port#]/path/…/[?query-string][#anchor]

scheme 指定低层使用的协议(例如:http, https, ftp)

host HTTP服务器的IP地址或者域名

port# HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.cnblogs.com:8080/

path 访问资源的路径

query-string 发送给http服务器的数据

anchor- 锚

URL 的一个例子

http://www.mywebsite.com/sj/test/test.aspx?name=sviergn&x=true#stuff

Schema: http

host: www.mywebsite.com

path: /sj/test/test.aspx

Query String: name=sviergn&x=true

Anchor: stuff

HTTP的Request/Response:

先看Request 消息的结构, Request 消息分为3部分

第一部分叫Request line,

第二部分叫Request header,

第三部分是body. header和body之间有个空行,

结构如下图

第一行中的Method表示请求方法,比如”POST”,”GET”, Path-to-resoure表示请求的资源, Http/version-number 表示HTTP协议的版本号

当使用的是”GET” 方法的时候, body是为空的

比如我们打开博客园首页的request 如下

GET http://www.cnblogs.com/ HTTP/1.1

Host: www.cnblogs.com

抽象的东西,难以理解,老感觉是虚的, 所谓眼见为实, 实际见到的东西,我们才能理解和记忆。 我们今天用Fiddler,实际的看看Request和Response.

下面我们打开Fiddler 捕捉一个博客园登录的Request 然后分析下它的结构, 在Inspectors tab下以Raw的方式可以看到完整的Request的消息,

如下图

图片

Accept

作用: 浏览器端可以接受的媒体类型,

例如: Accept: text/html 代表浏览器可以接受服务器回发的类型为 text/html 也就是我们常说的html文档,

如果服务器无法返回text/html类型的数据,服务器应该返回一个406错误(non acceptable)

通配符 * 代表任意类型

例如 Accept: / 代表浏览器可以处理所有类型,(一般浏览器发给服务器都是发这个)

Referer:

作用: 提供了Request的上下文信息的服务器,告诉服务器我是从哪个链接过来的,比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。

例如: Referer:http://translate.google.cn/?hl=zh-cn&tab=wT

Accept-Language

作用: 浏览器申明自己接收的语言。

语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等;

例如: Accept-Language: en-us

Content-Type

作用:

例如:Content-Type: application/x-www-form-urlencoded

Accept-Encoding:

作用: 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate),(注意:这不是只字符编码);

例如: Accept-Encoding: gzip, deflate

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信协议
    +关注

    关注

    28

    文章

    777

    浏览量

    39975
  • HTTP
    +关注

    关注

    0

    文章

    468

    浏览量

    30477
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1287

    浏览量

    78516
  • UDP
    UDP
    +关注

    关注

    0

    文章

    312

    浏览量

    33704
收藏 人收藏

    评论

    相关推荐

    主流协议TCP/IP协议,对此了解多少

    主流协议TCP/IP协议,对此了解多少现在Internet(因特网)使用的主流协议族是
    发表于 08-27 16:13

    TCP通信协议-Labview上位机

    现在用单片机进行信息采集,通过GPRS模块上传到PC,用Labview做上位机,TCP通信协议,想请教一下,TCP通信协议和Modbus TCP
    发表于 12-10 08:58

    了解一下MODBUS通信协议

    目录前言MODBUS协议简介MODBUS通信格式信息帧格式前言近期需要制作一个MODBUS/RTU转MODBUS/TCP 的网关。首先需要了解一下MODBUS
    发表于 01-14 06:19

    TCPUDP协议区别

    组成员关系。TCP传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议UDP用户数据报
    发表于 03-23 10:12

    TCPUDP的区别分析

      传输层协议主要有TCPUDPUDP提供无连接的通信,不能保证数据包被发送到目标地址,典型的即时传输少量数据的应用程序通常使用
    发表于 09-18 10:29 2次下载

    tcpudp协议的异同

    UDP 校验和则是包含 UDP 首部和数据在内的校验结果。 TCP协议 TCP协议基于网络层的
    的头像 发表于 11-12 14:45 3751次阅读
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b><b class='flag-5'>协议</b>的异同

    TCP协议UDP协议的区别和相同点有哪些 一文看懂TCP协议UDP协议的优缺点

    首先咱们弄清楚,TCP协议和UCP协议TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP
    的头像 发表于 05-26 14:35 8924次阅读
    <b class='flag-5'>TCP</b><b class='flag-5'>协议</b>与<b class='flag-5'>UDP</b><b class='flag-5'>协议</b>的区别和相同点有哪些 一文看懂<b class='flag-5'>TCP</b><b class='flag-5'>协议</b>与<b class='flag-5'>UDP</b><b class='flag-5'>协议</b>的优缺点

    通信协议中的HTTPTCPUDP了解多少(下)

    我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名称和版本,你所使用的浏览器的名称和版本,这往往让很多人感到很神奇,实际上,服务器应用程序就是从User-Agent这个请求报头域中获取到这些信息User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。
    的头像 发表于 02-13 14:23 263次阅读
    <b class='flag-5'>通信协议</b>中的<b class='flag-5'>HTTP</b>、<b class='flag-5'>TCP</b>、<b class='flag-5'>UDP</b>你<b class='flag-5'>了解</b>多少(下)

    TCP协议UDP协议的区别

    TCP/IP协议中有两个具有代表性的传输层协议,分别是TCP协议UDP
    的头像 发表于 03-21 10:39 999次阅读

    一文搞明白TCP协议UDP协议(上)

    网络编程有三个要素,分别是IP地址、端口号和通信协议,那本文主要讲述的是TCPUDP这两种通信协议,以及编程的实现。 首先,我们需要了解
    的头像 发表于 05-18 17:17 535次阅读
    一文搞明白<b class='flag-5'>TCP</b><b class='flag-5'>协议</b>与<b class='flag-5'>UDP</b><b class='flag-5'>协议</b>(上)

    一文搞明白TCP协议UDP协议(下)

    网络编程有三个要素,分别是IP地址、端口号和通信协议,那本文主要讲述的是TCPUDP这两种通信协议,以及编程的实现。 首先,我们需要了解
    的头像 发表于 05-18 17:17 506次阅读
    一文搞明白<b class='flag-5'>TCP</b><b class='flag-5'>协议</b>与<b class='flag-5'>UDP</b><b class='flag-5'>协议</b>(下)

    基于Socket的UDPTCP编程解析 1

    TCP(传输控制协议)和UDP(用户数据报协议是网络体系结TCP/IP模型中传输层一层中的两个不同的通信
    的头像 发表于 05-18 17:22 792次阅读
    基于Socket的<b class='flag-5'>UDP</b>和<b class='flag-5'>TCP</b>编程解析 1

    基于Socket的UDPTCP编程解析 2

    TCP(传输控制协议)和UDP(用户数据报协议是网络体系结TCP/IP模型中传输层一层中的两个不同的通信
    的头像 发表于 05-18 17:22 505次阅读
    基于Socket的<b class='flag-5'>UDP</b>和<b class='flag-5'>TCP</b>编程解析 2

    IP地址、端口号、通信协议的相关知识 TCPUDP通信协议简述

    网络编程有三个要素,分别是IP地址、端口号和通信协议。本文主要讲述的是TCPUDP这两种通信协议,以及编程的实现。首先,我们需要了解一下I
    的头像 发表于 07-18 11:20 1564次阅读
    IP地址、端口号、<b class='flag-5'>通信协议</b>的相关知识 <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b><b class='flag-5'>通信协议</b>简述

    TCPUDP协议有什么区别?如何通过网关实现TCP协议通信

    TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,能够保证数据从发送方到达接收方,是物联网领域常见的通信协议之一。 TCP是面
    的头像 发表于 01-24 11:07 340次阅读
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b><b class='flag-5'>协议</b>有什么区别?如何通过网关实现<b class='flag-5'>TCP</b><b class='flag-5'>协议</b><b class='flag-5'>通信</b>?