如图所示,这是客户端往服务器发送请求时的报文:

一般来说,将报文分成三个部分,请求行、请求头、请求体

如图,请求行包括三部分内容

1、请求方法,在HTTP里的请求方法种类较多,但就移动端开发来说,常用的方法是GET\POST\HEAD这三种请求方法

2、URI,统一资源标识符,也可以用URL代替,也就是请求的资源路径

3、HTTP协议版本

如图,请求头包含的内容:

一般来说,请求头里面包含着客户端此次请求的具体信息:

比如说,客户端接受服务器返回的文件的类型,Content-Type

客户端此次接受服务器返回文件的长度,Content-Length

客户端想要的返回文件的具体范围,Range

客户端的语言环境等,都是包含在请求头里面的。知道这些信息,我们就可以加以利用,来达到想要的效果。

请求体

一般是POST请求才有请求体的,主要是上传文件时用到,一般是放需要传给客户端的具体文件。

在HTTP协议中,客户端请求服务器,那么只要服务器接受到客户端的请求,便会响应客户端所发请求

响应,也分为三个部分:响应行、响应头,响应体,如下图:

其中,响应行包括:

1、服务器HTTP协议版本

2、状态码(其中2XX信息的,表示处理成功;  4XX信息的,表示客户端的错误;  5XX信息的,表示服务器内部出错,也就是不关我们客户端啥事......)

3、原因短语,表示成功、失败原因啥之类的

响应头:

也就是服务器返回给客户端,服务器的具体信息

此次响应的时间、此次响应返回的文件长度、文件类型等等

响应体:

服务器返回给客户端的文件、数据等

HTTP请求与响应报文详解的更多相关文章

  1. Http 请求头 响应体 详解

    Referrer Policy 是什么? 我们知道,在页面引入图片.JS 等资源,或者从一个页面跳到另一个页面,都会产生新的 HTTP 请求, 浏览器一般都会给这些请求头加上表示来源的 Referre ...

  2. javaweb(四)——Http协议(请求头,响应头详解)

    一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...

  3. HTTP权威指南读书笔记(一)HTTP概述、URL和资源及报文详解

    一.HTTP概述 1.WEB客户端和服务器. 2.资源:资源可以是各种格式的静态文件,也可以是应用程序. 3.媒体类型 4.URI:统一资源标识符 URL:统一资源定位符. URL的第一部分称为方案: ...

  4. http协议之报文详解

    一. 概述 用于HTTP协议交互的信息被称为HTTP报文.请求端(客户端)的http报文叫做请求报文,响应端的叫做响应报文. 报文,是网络中交换和传输的数据单元,即站点一次性要发送的数据块.报文包含了 ...

  5. HTTP/1.1报文详解

    本文为<三万长文50+趣图带你领悟web编程的内功心法>第三个章节. 3.HTTP/1.1报文详解 在RFC2616中心详细的描述了HTTP/1.1[1]的报文,感兴趣的朋友也可以前往阅读 ...

  6. jmeter --响应断言详解

    jmeter --响应断言详解 响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-samp ...

  7. Python网络请求urllib和urllib3详解

    Python网络请求urllib和urllib3详解 urllib是Python中请求url连接的官方标准库,在Python2中主要为urllib和urllib2,在Python3中整合成了urlli ...

  8. Jmeter接口之响应断言详解

    响应断言 : 对服务器的响应进行断言校验 Apply to 应用范围: main sample and sub sample, main sample only , sub-sample only , ...

  9. 减少HTTP请求之合并图片详解(大型网站优化技术)

    原文:减少HTTP请求之合并图片详解(大型网站优化技术) 一.相关知识讲解 看过雅虎的前端优化35条建议,都知道优化前端是有多么重要.页面的加载速度直接影响到用户的体验.80%的终端用户响应时间都花在 ...

随机推荐

  1. TCP_NODELAY 和 TCP_NOPUSH的解释

    一.问题的来源 今天看到 huoding 大哥分享的 lamp 面试题,其中一点提到了: Nginx 有两个配置项: TCP_NODELAY 和 TCP_NOPUSH ,请说明它们的用途及注意事项. ...

  2. MFC的DLL中实现定时器功能

    方法一:创建一个线程, 反复读系统时间不就可以了? 如果定时要求不严,用Sleep就可以了.DWORD WINAPI TimerThread(LPVOID pamaram) { UINT oldTic ...

  3. opestack keystone 深入

    一.概述 keystone 有两个endpoint端口,一个35357,用于管理,只有admin_role可以使用.一个是5000, 用于业务: 二.keystone中的路由 解析url,然后获取后端 ...

  4. Swift 类型检查与类型转换

    前言 在 Swift 语言中一般使用 is 关键字实现类型检查,使用 as 关键字实现类型转换,除此之外还可以通过构造器和方法来实现类型转换. 1.类型检查 1.1 使用 is 检查 类型检查操作符 ...

  5. 一步一步掌握java的线程机制(二)----Thread的生命周期

    之前讲到Thread的创建,那是Thread生命周期的第一步,其后就是通过start()方法来启动Thread,它会执行一些内部的管理工作然后调用Thread的run()方法,此时该Thread就是a ...

  6. poj3041(最小顶点覆盖)

    链接:点击打开链接 题意:N*N的矩阵中有一些点代表陨石.每次仅仅能消灭一行或一列连,问须要多少次才干所有消灭 代码: #include <map> #include <queue& ...

  7. iOS 优秀开源框架 开源包 开发包 from : Podfile of chatsecure ---待完善

    前段时间发现chatsecure的podfile中使用了很多非常优秀的开源包 和 大公司的sdk. 拿出来分享下. 各个类库的作用待完善. platform :ios, "7.0" ...

  8. SharePoint 2013 Step by Step——How to Create a Lookup Column to Another Site(Cross Site)

    OverView In this post,I want to show u how to add a look up column in my list or library that looks ...

  9. PHP位运算用途

    在实际应用中可以做用户权限的应用 我这里说到的权限管理办法是一个普遍采用的方法,主要是使用到”位运行符”操作,& 位与运算符.| 位或运行符.参与运算的如果是10进制数,则会被转换至2进制数参 ...

  10. springboot 与 mybatis 中事务特性讲解

    1 MyBatis自动参与到 spring 事务管理中,无需额外配置,只要org.mybatis.spring.SqlSessionFactoryBean引用的数据源与 DataSourceTrans ...