1.相关概念

1.1  TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据;

1.2  HTTP协议是基于TCP之上的,当浏览器须要从Server获取网页数据的时候,会发出一次HTTP请求。HTTP会通过TCP建立起一个到server的连接通道。当本次请求须要的数据完成后,HTTP会马上将TCP连接断开,这个过程是非常短的。所以HTTP连接是一种短连接,是一种无状态的连接。所谓的无状态,是指浏览器每次向Server发起请求的时候,不是通过一个连接,而是每次都需要建立一个新的连接;

1.3  我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等;

1.4 HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送响应的信息给客户端或浏览器;

注意:浏览器给服务器发送数据是一次请求(request)。服务器给浏览器反馈数据是一次响应(response);

2.HTTP报文

  1. 协议是用来定义数据传输的格式,那么按照一定格式形成的数据包即报文,也可以叫数据报;
  2. HTTP 报文分三个部分:起始行(请求行 - 响应行/状态行),头部(请求头/消息 - 响应头/消息头),主体(请求体/实体内容 - 响应体/实体内容);
  3. HTTP 报文分为请求报文和响应报文;

HTTP请求报文,包括如下:

说明:

  1. 请求方法(也叫请求方式)有很多,后期需要掌握Get和Post两种即可;
  2. URL(Uniform/Universal Resource Locator)是统一资源定位符,俗称请求网址。URI(Uniform Resource Identifier) 是统一资源标识符,俗称请求资源路径。http://localhost:8080/myweb/hello.html以上web地址,加粗部分+非加粗部分=URL。非加粗部分=URI;
  3. 与Http1.0不同(连接一次,请求一次,响应一次。响应完毕,马上断开连接。如果还需要请求,需要重新连接),从HTTP/1.1(连接一次,请求多次,响应多次)起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完毕后。client和server之间用于传输HTTP数据的TCP连接不会关闭,假设client再次訪问这个server上的网页,会继续使用这一条已经建立的连接。但Keep-Alive不会永久保持连接。它有一个保持时间。能够在不同的server软件(如Apache)中设定这个时间;
  4. 部分消息头:
  • Accept:告诉服务器能够发送哪些媒体类型;
  • Referer:告诉服务器该网页是从哪个页面链接过来的;
  • Accept-Language:告诉服务器能够发送哪些语言;
  • User-Agent:告诉网站服务器,访问者是通过什么工具来请求的,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答;
  • Host:HTTP 1.1 协议中新增的一个请求头,主要用来实现虚拟主机技术。同一台服务器部署多个服务,可以依靠虚拟主机来区分,而Host 请求头决定着访问哪个虚拟主机;
  • Content-type:用于描述该请求来自于表单默认的提交数据的格式(application/x-www-form-urlencoded);
  • Connection:为keep-alive在很多情况下能够重用连接,减少资源消耗,缩短响应时间。所以在HTTP1.1中缺省就是支持keep-alive的;
  • Content-Length:用于描述HTTP消息实体的传输长度;
  • Cookie:客户端用它向服务器传送一个令牌。注意它并不是真正的安全首部,但确实隐含了安全功能;

HTTP响应报文,包括如下:

HTTP协议请求响应报文相关介绍相关推荐

  1. http :请求响应报文-web服务-ajax-cors跨域

    node:http 协议:请求响应报文-web服务-url与对象的转化-ajax-cors跨域 1 梳理重点 1.1搭建服务 注意: ① 站点创建完成后,需要通过node命令启动 ② 创建站点的代码如 ...

  2. 【HTTP协议】HTTP请求/响应报文结构

    文章内容 HTTP请求/响应报文结构 请求报文 1.请求行 2.请求头部 3.空行 4.请求数据 响应报文 1.响应行 2.响应头 3.响应体 通用头.实体头 (1) 通用头域 (2) 实体头域 如果 ...

  3. HTTP请求/响应报文结构

    HTTP请求/响应报文结构 HTTP请求报文 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据. 1.请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它 ...

  4. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第37讲:HTTP协议请求(响应)

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第37讲:HTTP协议请求(响应) 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.h ...

  5. HTTP - 超文本传输协议 - 请求响应式协议HTTP 请求

    HTTP - 超文本传输协议 - 请求响应式协议 HTTP 请求 请求行:GET /index.html HTTP/1.1 请求头:键值对 空行:\r\n 消息体:发给服务器的数据 HTTP 响应 响 ...

  6. HTTP请求/响应报文头部结构

    HTTP请求 一个HTTP请求由四个部分组成:请求行.请求头部.空行.请求数据. -请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GET /data ...

  7. python之http请求响应报文

    1. HTTP 请求报文介绍 HTTP最常见的请求报文有两种: GET 方式的请求报文 POST 方式的请求报文 说明: GET: 获取web服务器数据 POST: 向web服务器提交数据 2. HT ...

  8. http状态码 以及请求响应头相关

    1xx消息[编辑] 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非 ...

  9. 使用java解析Infor XA ERP SystemLink请求响应报文

    Infor XA ERP的SystemLink响应报文是一段比较复杂的xml,里面记录了操作是否成功的状态以及操作结果或者错误说明. 对SystemLink解析,就是从响应的xml报文里面解析出操作结 ...

最新文章

  1. php tr 用法,Linux_Linux系统中tr命令删除和替换文本字符的基本用法,通过使用 tr,您可以非常容易 - phpStudy...
  2. 浅谈MVC Form认证
  3. php imap 安装_linux 下安装PHP的IMAP扩展实现邮件收发
  4. 首次使用gradle出现Could not find method leftShift() for arguments解决办法
  5. sql注入及mybatis防止sql注入
  6. UE3 ExampleGame Android版无法运行解决方案
  7. LeetCode 之 JavaScript 解答第141题 —— 环形链表 I(Linked List Cycle I)
  8. 编译mediastreamer2/ffmpeg/linphone(x86平台)
  9. Jenkins操作手册
  10. JVM堆外内存的回收机制分析
  11. php大文件上传失败的原因及解决方法
  12. win11如何创建访客账户 windows11创建访客账户的设置方法
  13. nginx配置 负载均衡_如何配置NGINX负载平衡
  14. netlogo-入门-学习记录
  15. Java、JSP房产中介房屋信息管理系统
  16. 读后感之悟道-一位20年IT高管的职场心得
  17. 使用arduino驱动光驱步进电机
  18. 小米手机miui版本号详细介绍
  19. Spire.XLS使用教程:在Java中将 Excel 转换为 CSV或将CSV转换为Excel
  20. vue学习笔记(一) ---- vue指令(过滤器)

热门文章

  1. 数字电路42( 单稳态触发器)
  2. HDU 2112 HDU Today(最短路)
  3. 51单片机系列——基于单片机的蓝牙LED摇摇棒设计
  4. 微信小程序报错:navigateTo:fail can not navigateTo a tabbar page的解决方法
  5. android 事件机制总结
  6. ubuntu更换阿里云镜像源操作步骤
  7. Unity游戏Mod/插件制作教程01 - BepInEx的安装和使用
  8. NEXUS 7 刷机
  9. qt:字符串与hex转换器
  10. 华为、OPPO、美的能逆势成长的本质和核心是什么?