http请求与响应,TCP三次握手&四次分手

2023-11-02

        从前端发起请求到后台的整个过程,是一个面试中经常遇到的问题。大概的流程想必有一点基础的人都明白,但是要细说,却未必能一一道出来,曾经老师教过的知识也都差不多忘干净了。所以,我上网找了点资料,加上自己的理解,做个记录。


**********************************************************  华丽的分割线 ******************************************************************


一、HTTP是什么

        http(HyperText Transfer Protocol),超文本传输协议,是互联网上应用最广泛的一种网络协议,所有www文件都必须遵守的一个标准,是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。说白了,就是大家都约好互相之间按照一种固定的规则来进行通讯。

        http也可以说成是一种客户端和应答服务器端请求和应答的标准(TCP)。通过使用浏览器或其他工具(如google的Postman),客户端发起一个到应答服务器上指定端口(如Tomcat的8080或jmx的1099等)的http请求,或者反过来,服务器给客户端发送一个回应。在客户端和应答服务器端可能存在多个中间层,比如代理、网关或者隧道。



二、HTTP请求报文

        http请求报文是指客户端到服务器端的消息,客户端通过发送http请求向服务器请求对资源的访问。包括三个部分:请求行、请求头部、请求数据。请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种

       1.请求行:包含请求方法、uri和协议的版本,用空格分隔,例如:GET/sample.jsp HTTP/1.1

        2.请求头部:包含有关客户端环境及请求正文的信息,如请求正文长度、浏览器所用编码格式等,例如;

Accept:image/gif.image/jpeg.*/*

Accept-Language:zh-cn

Connection:Keep-Alive

Host:localhost

User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

http请求与响应,TCP三次握手&四次分手 的相关文章

  • ASP.NET - 将所有 https 请求重写为 http

    我的问题正是所提出的问题here https stackoverflow com questions 16276860 iis 7 adding ssl to one site all other sites responds to htt
  • 如何防止 Firefox 缓存

    我尝试了很多可能的解决方案 但无法解决问题 这些不起作用 有人可以帮忙吗 我正在使用jsp servlet application 是websphere Portal 6 1 的一个portlet 切勿
  • 使用:text/plain; 有什么缺点吗?字符集=“UTF-8”

    我的网络服务器提供的内容在 95 的情况下只是简单的 ascii 但在极少数情况下 内容包含一些德语非 ASCII 字符 现在我可以设置content type通过检测内容是否包含任何非 ASCII 字符来响应标头 或者我可以始终设置响应标
  • Crystal lang如何从http获取二进制文件

    In Ruby require open uri download open http example com download pdf IO copy stream download my file pdf 如何在水晶中做同样的事情 我们
  • 如何在 G-WAN 中添加 HTTP/2

    我想知道是否可以通过使用解决方案 nghttp2 https nghttp2 org https nghttp2 org 很抱歉这么晚才回答 出于某种原因 Stackoverflow 没有通知我们这个问题 我之所以找到它只是因为收到了更新的
  • 如何让 HttpClient 返回状态码和响应正文?

    我试图让 Apache HttpClient 触发 HTTP 请求 然后显示 HTTP 响应代码 200 404 500 等 以及 HTTP 响应正文 文本字符串 重要的是要注意我正在使用v4 2 2因为大多数 HttpClient 示例都
  • Web API GET 请求中的电子邮件地址

    我正在开发在 ASP NET Web API 中实现的 REST API 我们想要支持的一个场景是执行GET通过电子邮件地址请求一些用户信息 理想情况下 客户应该能够执行以下操作 GET api v1 users email your em
  • 在防火墙后面使用 GitHub,无需 SSH 访问

    我真的很想使用 GitHub 但我的公司一切都被锁定了 现在 我只能通过HTTP协议使用Tortoise SVN 我可以以同样的方式使用 GitHub 吗 如果是这样 怎么办 我认为你一直能够克隆github https github co
  • Django:如何测试“HttpResponsePermanentRedirect”

    我正在为我的 django 应用程序编写一些测试 在我看来 它使用 HttpResponseRedirect 重定向到其他一些网址 那么我该如何测试呢 姜戈TestCase类有一个方法assertRedirects https docs d
  • HTTP 错误 415 我做错了什么?

    我正在发送 SOAP POST 但收到 HTTPError HTTP 错误 415 不支持的媒体类型 response urllib2 urlopen req data
  • 使用 Django 发出 HTTP 请求并反序列化输出

    因此 我对整个 Web 开发几乎完全陌生 但已经投入到一个使用 Django 从 Web 服务中提取和解析数据的副项目中 并且即使在查看 Django 时 我也很难准确地理解事情是如何工作的 文档 在 Django 中 我已经完成了所有设置
  • 在 grails 中编写代理

    我正在使用 Gralis 1 3 7 我正在编写一个控制器 需要从另一台服务器获取 PDF 文件并将其返回给客户端 我想以某种相当有效的方式来做到这一点 例如 class DocController def view URL source
  • 当响应有正文时,内容长度或传输编码是必需的吗

    如果响应有正文 可以有正文 即状态代码不是 204 或 304 则响应标头中是否应始终具有内容长度或传输编码 在规范中 它不是很清楚 在我的场景中 我的主体没有内容长度或传输编码标头 因此卷曲继续等待no chunk no close no
  • 如何在纯 HTML 页面中返回特定的 HTTP 状态代码

    Google 建议当网站暂时不可用时返回 503 HTTP 响应 我有一些纯 HTML 网站 如何在纯 HTML 网站中返回 503 状态 我使用的是带有 Apache 的 Linux 机器 您必须在服务器上而不是在 HTML 文件中设置状
  • AddressAccessDeniedException :无需 netsh 即可解决它?

    我遇到了异常AddressAccessDeniedException因为我的processus没有注册URL的权限 我首先以管理员身份运行我的程序 好的 它成功了 但我现在想要分发我的应用程序 并且我希望每个用户都能够运行它 而不必成为管理
  • 使用哪个 HTTP 状态代码来拒绝由于乐观锁定失败而导致的 PUT

    假设我想实现某种乐观锁定并使用 ETag 来指示最新的资源状态 这意味着 客户将使用If Match标题时PUT等待更新 根据HTTP规范 http www w3 org Protocols rfc2616 rfc2616 sec14 ht
  • 使用意图过滤器从 URL 打开 Android 应用程序不起作用

    我有一个 Android 应用程序 人们用它来替代网站 因此 当用户遇到网站的 URL 时 我想为他们提供在我的应用程序中而不是在浏览器中 打开 URL 的选项 换句话说 我希望出现弹出窗口 让他们在我的应用程序和浏览器 可能还有其他应用程
  • 发送压缩文件 Spring

    我想通过我的 spring 控制器发送一个已经存在的压缩文件 但我不断收到这些错误消息org springframework web HttpMediaTypeNotAcceptableException Could not find ac
  • 如何将 POST 请求内容保存为 .NET 中的文件 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个客户端应用程序POST请求a
  • Node.JS Web 服务器中的安全性

    所以 我正在学习 Node JS 到目前为止我很喜欢它 我已经有几个项目在工作了 我想我可以在其中使用nodejs 不过 我担心安全问题 如果我使用 Node JS http 模块编写自定义 Web 服务器 我是否可能非常容易受到攻击 Ap

随机推荐

  • Mysql教程(三):Mysql图形化工具DataGrip的基本使用

    Mysql教程 三 Mysql图形化工具DataGrip的基本使用 引言 为什么选择DataGrip 智能查询控制台 可以让您在不同的模式中执行查询 并提供本地历史记录 从而记录您的所有活动 避免工作丢失 高效的架构导航 使用对应的操作或直
  • 主管常常会犯的十一个错误

    近 年来 作为创始人 公司主管 轮换带过多个团队 今年元旦重观余世维老师南京邮电培训视频 对照余老师提及的管理者常犯的11个问题 逐个照镜子 汇聚成年终总结 管理篇 希望自己15年经过1年努力 改掉现在还有的 毛病 使自己能成为1名没有这1
  • gethostbyname获得相应域名的IP

    include
  • 全网最细,Python接口自动化测试-Session会话保持(实战详细)

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • 【华为OD机试真题 C++】检查是否存在满足条件的数字组合 【2022 Q4

    前言 华为OD机试真题 C 本专栏包含华为OD机试真题C 解答 会实时更新收纳网友反馈 为大家更新最新的华为德科OD机试试题 为大家提供学习和练手的题库 订阅本专栏后可私信进交流群哦 答案仅供参考 不可照抄哦 题目描述 检查是否存在满足条件
  • 多线程面试题总结(高级篇,2021-02-19)

    一 ThreadLocal 是什么 有哪些使用场景 ThreadLocal 是一个本地线程副本变量工具类 在每个线程中都创建了一个 ThreadLocalMap 对象 简单说 ThreadLocal 就是一种以空间换时间的做法 每个线程可以
  • QT 语言学习 day07 ui 界面 三种样式的按钮开关的制作!

    1 定义一个按钮类 class ImageSwitch 首先我们需要定义它的 成员函数 1 按钮的样式 enum ButtonStyle 枚举来定义 公有的定义给私有成员使用 2 我们需要重写它的绘画功能 void paintEvent Q
  • 深聊性能测试,从入门到放弃之:Locust性能自动化(七)HAR-files→locustfiles自动转换 :Transformer的使用

    Transformer 使用 1 引言 2 安装及调用 2 1 介绍 2 2 安装 2 3 使用 2 3 1 保存HAR files 2 3 2 命令行工具 2 3 3 作为库被调用 3 创建HAR file 3 1 简介 3 2 录制场景
  • lyapunov指数求取时运用qr法与jacobi法之间的区别与联系【基于matlab的动力学模型学习笔记_10】

    在进行lyapunov指数的求取时 需要知道离散动力学系统对应Jacobi矩阵的特征值 qr法与Jacobi法都可以求解矩阵特征值 其中qr法求解的是矩阵所有特征值 而Jacobi法求解的是矩阵的最大特征值 本文以二维Henon映射为例 分
  • SpringBoot统一收集异常信息并返回给前端

    目录 适用场景 实现方法 结合Servlet对象 RestControllerAdvice 适用场景 通常前后端交互时 后端对前端参数进行校验后 对于校验不通过的信息会自定义一个异常抛出 但是后端一旦抛出异常 后台接口服务就会报500的错误
  • 用vscode调试远程服务器的php

    一开始用phpstorm chrome的xdebug helper连接远程的腾讯云服务器进行xdebug调试 一直不成功 卡在 phpstorm Waiting for incoming connection with ide key xx
  • jsp Servlet的接口方法简绍

    jsp Servlet的接口方法简绍 简单介绍 三个重要的方法 重要掌握 1 被创建的方法 2 提供服务的方法 3 被销毁的方法 package Servlet import javax servlet import java io IOE
  • 使用 CentOS 7 部署前端项目

    购买服务器 以腾讯云为例 如果是 25 岁以下 可以免学生认证 使用校园优惠套餐 购买地址 云 校园 本文以 CentOS 为例 购买后 会初始化 root 密码 就可以使用云服务器了 配置服务器 购买之后就可以使用 root 用户名和腾讯
  • MySQL备份笔记

    MySQL备份笔记 备份的分类维度 备份时数据库的状态 Hot Backup 热备 正常运行中直接备份 Cold Backup 冷备 完全停止后备份 Warm Backup 温备 数据库只读 备份文件的格式 逻辑备份 输出文本或SQL语句
  • ubuntu 20.04 安装微信和QQ

    安装wine环境 根据教程 首先安装wine环境 然后安装weixin包 下载Wine环境包 http archive ubuntukylin com software pool partner ukylin wine 70 6 3 25
  • Linux安装配置php7+nginx

    1 安装php7 0 下载 wget http cn2 php net distributions php 7 0 4 tar gz 解压安装 tar zxvf php 7 0 4 tar gz cd php 7 0 4 首先查看安装帮助
  • vscode运行php报错php not found

    vscode运行php not found报错 要先检查原来的配置能否正常运行 1 插件 这两款插件试运行php的 2 查看php版本 3 php下载 下载php php下载 下载后配置环境变量 4 Xdebug 下载 找到生产环境 赋值一
  • vs code下运行conda环境报错

    在使用vs code下conda环境 运行程序会报告如下问题 conda activate base CommandNotFoundError Your shell has not been properly configured to u
  • 无法打开“×××”,因为无法确认开发者的身份——解决办法

    当打开这些应用程序时 系统提示无法打开 XXX 因为它来自身份不明的开发者 我们可以按照下面的方法解决 教程 1 打开应用程序 找到你要打开的软件 按住control键 点击应用打开 或者右键打开 2 出现下图所示 点击打开即可 3 只有第
  • http请求与响应,TCP三次握手&四次分手

    从前端发起请求到后台的整个过程 是一个面试中经常遇到的问题 大概的流程想必有一点基础的人都明白 但是要细说 却未必能一一道出来 曾经老师教过的知识也都差不多忘干净了 所以 我上网找了点资料 加上自己的理解 做个记录 华丽的分割线 一 HTT