TCP/IP详解——HTTP 协议

这篇具有很好参考价值的文章主要介绍了TCP/IP详解——HTTP 协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. HTTP 协议

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。HTTP工作在TCP协议的80端口上。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等),HTTP协议是基于TCP的80端口进行工作。

超文本传输协议(HTTP,Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。RFC2616定义了HTTP1.1,最新为HTTP2.0。

HTTP协议特点

  • 基于TCP协议:面向连接,安全。

  • TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全。

  • 基于请求-响应模型的:一次请求对应一次响应。

  • 请求和响应是一一对应关系。

  • HTTP协议是无状态协议:对于事务处理没有记忆能力。每次请求响应都是独立的。

  • 特点是哑服务器

1.1 URL 的格式

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

1.2 请求报文分析

HTTP 请求由请求行、请求头、请求体/请求正文三个部分组成。

1.2.1 请求行

HTTP 报文的第⼀行,由空格字符分成三部分。

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

  • 请求方法:GET / POST / PUT / DELETE /…

    • 最常用的方法也就是 GET 方法和 POST 方法,其他方法暂时了解即可。
  • 资源路径/请求的URL:HTTP 协议使用 URI 定位互联网上的资源。

    • 例如:http://www.baidu.com/path/to/myfile.html?key1=value1&key2=value2
  • 协议/版本:表示报文使用的 HTTP 协议版本。

    • 例如:HTTP/1.1
1.2.2 请求头

从请求报文第⼆行开始到第⼀个空行为止之间的内容。

字段 含义
Host 主要用于指定被请求资源的服务器地址和端口号。
User-Agent 客户端浏览器信息,表示浏览器或者操作系统的属性。(如果是恶意流量,在UA的头的位置会有nmap等字样)
Referer 包含一个URL,代表当前URL的上一个URL。表示这个页面是从哪个页面跳转过来的。
Cookie 记录请求者的身份认证信息
Accept-Charset 用于指定浏览器接收的字符集
Content-Type 用于向接收方(浏览器或服务器)指示实体的介质类型(数据类型格式,MME)
Content-Length 用于指明实体正文的长度,以字节方式存储的十进制数字来表示
Last-Modified 用于指示资源的最后修改时间

GET和POST两个请求之间的区别

  • GET请求的请求参数在请求行中,没有请求体,POST请求的参数在请求体中。

  • GET请求的请求参数大小有限制,POST没有。

1.3 响应报文分析

响应报文由状态行、响应报头、响应正文三部分组成。

响应报文从第⼀个空行开始到最后的所有内容。 服务器返回资源的内容,即浏览器接收到的HTML代码。

1.3.1 状态行

响应报文的第⼀行

响应码

状态代码 类型
1XX 信息性状态码
2XX 200:成功状态码
3XX 301:永久重定向状态码
302:暂时重定向状态码
4XX 客户端错误状态码
401:客户端错误状态响应代码
403:服务器理解请求但拒绝授权
404:服务器找不到请求的资源
405:服务器已知请求方法,但已被禁用且无法使用。
5XX 服务器错误状态码
500:服务器错误

状态 | Status - HTTP 中文开发手册。

1.3.2 响应报头

响应报文第二行开始到第⼀个空行为止的所有内容,其中包含了关于HTTP响应的重要字段。

字段 含义
Data 时间和日期
Server 服务器标头包含有关原始服务器用来处理请求的软件的信息。
Last-Modified 服务器通过这个头信息告诉浏览器,资源的最后修改时间
Content-Length 响应正文的长度
Content-Type 响应正文的类型
Set-Cookie 向浏览器端写入Cookie信息
Location 用于重定向,指示新的资源位置。
Refresh 服务器通过Refresh头告诉浏览器定时刷新浏览器

1.4 HTTP 工作原理

HTTP 协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。

HTTP 协议采用了请求/响应模型:

  1. 客户端向服务器发送一个请求报文,请求报文包含请求方法,URL,协议版本,请求头部和请求数据。
  2. 服务器以一个状态行作为响应,响应的内容包括协议的版本,成功或者错误的代码,服务器信息,响应头部和响应数据。

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

1.5 Request 消息

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

  1. 第一部分:请求行,用来说明请求类型,要访问的资源,以及所使用的HTTP版本。
    • POST说明请求类型为POST,“/” 为要访问的资源,最后一部分说明使用的是HTTP1.1版本。
  2. 第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息。
    • 从第二行起为请求头部,HOST将指出请求的目的地。User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型测逻辑的重要基础。该信息由你的浏览器来定义,并且在每个请求中自动发送等等。
  3. 第三部分:空行,请求头部后面的空行是必须的。
    • 即使第四部分的请求数据为空,也必须有空行
  4. 第四部分:请求数据也是主体,可以添加任意的其他数据。

1.6 Request 包解码

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

注意:请求报头会由于使用的HTTP客户端浏览器或者客户端浏览器配置选择的不同而不同。

1.7 Response 消息

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

  1. 第一部分:状态行,由HTTP协议版本号、状态码、状态消息三部分组成。
    • (HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)
  2. 第二部分:消息报头,用来说明客户端要使用的一些附加信息
    • Date:生成响应的日期和时间;
    • Content-Type:指定了MIME类型的HTML(text/html)编码类型是UTF-8
  3. 第三部分:空行,消息报头后面的空行是必须的。
  4. 第四部分:响应正文,服务器返回给客户端的文本信息。
    • 空行后面的html部分为响应正文。

1.8 HTTP 协议抓包分析

1.8.1 CSNAS 抓包查看

Request数据包

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

Response数据包

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

1.8.2 Wireshark 抓包查看

Request数据包

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

Response数据包

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

1.8.3 OmniPeek 抓包查看

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

1.8.4 Burp Suite 抓包查看

Request请求包

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

Response响应包

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

1.8.5 Yakit 抓包查看

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络

1.9 思考

为什么在浏览器输入t.cn会转向访问到weibo.com

  • t.cn是新浪微博(weibo.com)使用的短链接服务。当在浏览器中输入 t.cn时,这个请求会被发送到新浪微博的服务器,服务器会解析这个短链接并将其重定向到对应的网页,最终访问到 weibo.com。

因为在访问t.cn的时候是GET请求方式,服务器响应了一个301状态码,而301状态码是永久重定向状态响应代码,指示所请求的资源已被重定向到Location标题给定的URL 。

TCP/IP详解——HTTP 协议,TCP/IP协议详解,tcp/ip,http,网络协议,网络文章来源地址https://www.toymoban.com/news/detail-764058.html

到了这里,关于TCP/IP详解——HTTP 协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCP/IP协议、HTTP协议

    面试时,我们可能会被问到TCP/IP相关问题,比如: 什么是TCP/IP协议? TCP建立连接为什么要进行三次握手? TCP断开连接为什么要进行四次挥手? 一、TCP/IP协议模型 (TCP协议)传输控制协议是一种面向连接的、可靠的、基于字节流的方式进行有序的无差错的数据传输通讯协议

    2024年03月14日
    浏览(60)
  • TCP、IP、TCP/IP、HTTP和HTTPS协议简介

    TCP、IP、TCP/IP、HTTP和HTTPS都是计算机网络通信中常见的协议。 TCP TCP(Transmission Control Protocol)是传输层协议,在网络通信中提供可靠的、面向连接的数据传输服务。TCP协议确保数据的可靠性、完整性和有序性,并且可以自动进行重传和错误校验,为应用层提供了可靠的数据传输

    2024年02月04日
    浏览(46)
  • TCP/IP协议—HTTP

    超文本传输协议(Hypertext Transfer Protocol,HTTP)是一种请求-响应的协议,用户可以通过HTTP向服务器上传、下载数据。HTTP基于TCP协议,是web应用中最主要的应用层协议,比如浏览器上网就是使用HTTP协议。通讯端口默认为80。 超文本安全传输协议(Hypertext Transfer Protocol Secure,

    2024年04月26日
    浏览(41)
  • HTTP 协议和 TCP/IP 协议之间有什么区别?

    HTTP(超文本传输协议)和TCP/IP(传输控制协议/互联网协议)是两种在互联网通信中广泛使用的协议,它们之间的区别和联系对许多人来说可能还不是很清晰,今天我们就带大家来一起了解一下HTTP和TCP/IP协议这2者之间的主要区别和功能。 我们来看看HTTP协议。HTTP是一种应用层

    2024年01月20日
    浏览(52)
  • HTTP、TCP/IP协议族、分层管理、DNS、URI

    第一章 使用HTTP协议访问WEB 浏览器输入URL 请求后端服务器 后端服务器经过处理之后返回相应的信息(resource) 发送请求的机器,我们可以叫做 客户端(client) 。 处理请求的机器,我们可以叫做 服务器 。 客户端和服务器之间的协议就是我们的主角:HTTP。换句话说,WEB是建立

    2024年02月02日
    浏览(47)
  • 网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解

    目录 前文链接(系列助学, 也为后文学习做铺垫, 可按需读取) 一. 再谈HTTP再理解 二. HTTP对比学习HTTPS HTTP和HTTPS的区别如下: 三.TCP协议  (三次握手四次挥手细节过程理解在之前的博文中有详细图解) tcp缓冲区概念的引入  (解释流量控制): 确认应答(ACK)机制的理解 (编序号)

    2023年04月09日
    浏览(60)
  • TCP/IP,UDP,DNS,NAT,DHCP,HTTP协议

    1.TCP/IP协议 TCP/IP协议是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个

    2024年01月17日
    浏览(48)
  • 第138篇:了解HTTP协议(TCP/IP协议,DNS域名解析,浏览器缓存)

    好家伙,发现自己的网络知识十分匮乏,赶紧补一下   这里先举个我生活中的例子 欸,作业不会写了,上网搜一下 用edge浏览器上bing必应搜一下(百度广告太多了,真不想用百度举例子)   假设这是我们第一次访问bing的首页 当我向浏览器中输入https://cn.bing.com/并按下回车

    2023年04月24日
    浏览(46)
  • 【网络基础】TCP/IP协议详解

    TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是在多个不同网络间实现信息传输的通信协议.是由一组不同功能的协议组合在一起构成的协议簇,利用一组协议完OSI所实现的功能. OSI模型对照DOD模型 NFS 网络文件系统 ,英文Network File System(NFS),是由

    2024年02月16日
    浏览(59)
  • 详解TCP/IP协议第一篇:网络基础知识

    😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783824   📚📚  工作微信:BigTreeJava 拉你进微信群,免费领取! 🍎🍎4:本文章内容出自上述:Spring应用课程!💞💞

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包