HTTP协议版本有两种:HTTP1.0和HTTP1.1

它们俩的区别在于:HTTP1.0对于每个连接都只能传送一个请求和响应,请求后就会关闭,HTTP1.0没有Host字段;而HTTP1.1在同一个连接中可以传送多个请求和响应,多个请求可以重叠和同时进行,HTTP1.1必须有Host字段

http请求过程:

1)请求超链接——》客户端发送请求到服务器,请求包内容:协议版本号,求情地址,请求方式,请求头和请求参数

2)服务器接受请求——》开始处理请求——》将响应包返回给客户端,响应包内容:协议版本号,状态码,响应数据

3)前端收到响应包——》根据响应数据开始做相应处理

常见的请求头字段含义:

请求行:标明了请求方法,请求URL,HTTP协议及版本

Accept:浏览器可接受的MIME类型,也就是代表着浏览器希望接收什么样的文件

Accept-Charset:浏览器可接受的字符集

Accept-Encoding:浏览器能够进行解码的数据编码方式

Accept-Language:浏览器所接受的语言

Authorization:授权信息

Content-Length:表示请求消息正文的长度

Host:客户机通过这个头告诉服务器,想访问的主机名

If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间

Referer:表明客户机是从哪里来的

User-Agent:User-Agent头域的内容包含发出请求的用户信息,浏览器类型

Pragma:指定“no-cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。

Connection:处理完这次请求后是否断开连接还是继续保持连接。

UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和CPU类型。

响应头

常见的响应头字段含义:

响应行:报文协议及版本,状态码以及状态描述

Allow:服务器支持哪些请求方法(如GET、POST等)。

Content-Encoding:文档的编码(Encode)方法。

Content-Length:表示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。

Content- Type:表示后面的文档属于什么MIME类型

Expires:告诉浏览器把回送的资源缓存多长时间,-1或0则是不缓存

Server:服务器通过这个头告诉浏览器服务器的类型

WWW-Authenticate:客户应该在Authorization头中提供什么类型的授权信息

Get和Post的区别:

GET请求的数据会附在URL之后,即数据直接显示在url中,以?分割URL和传输数据,参数之间以&相连

如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5 %A5%BD。

如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4 %BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

而POST方法则会把数据放到请求数据字段中以&分隔各个字段,请求行不包含数据参数,地址栏也不会额外附带参数。

另外GET方法是没有报文体的

状态码:

1xx:表示请求已接收,继续处理。比如100表示服务器正在处理客户请求

2xx:表示请求已被成功接收,理解,接受。 比如200表示请求成功

3xx:表示客户端被重定向到其他资源。  比如301表示本网页永久性转移到另一个地址;302表示重定向,浏览器自动跳转新连接;304表示上次文档已经保存,还可以继续使用

4xx:请求有语法错误或请求无法实现   比如400表示请求有语法错误浏览器不能解析;403表示拒绝提供服务;404表示请求资源不存在

5xx:服务器执行请求时遇到错误    比如500服务器错误;503服务器当前不能处理,请稍后再试

HTTP请求/响应报文结构的更多相关文章

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

    请求报文和响应报文都是由以下4部分组成: 1.请求行/响应行 2.请求头/响应头 3.空行 4.消息主体(请求体/响应体) 请求报文结构 请求行 格式为:Method Request-URI HTTP ...

  2. HTTP请求响应报文&&相关状态码&&GET_POST请求方法 总结

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

  3. HTTP请求响应报文 - 相关状态码 - GET_POST请求方法

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

  4. 关于Tomcat中封装请求-响应的结构的分析

    在编写Servlet时,往往只重写了doGet和doPost方法,使用Tomcat通过(HttpServletRequest 和 HttpServletResponse)接口传递来的request和r ...

  5. CXF Service Interceptor请求,响应报文之控制台输出

    一:定义接口 @WebService(targetNamespace = "http://www.unionpay.com/client/appprovider", name = ...

  6. HTTP 请求过程以及报文结构

    目录 HTTP 请求流程 HTTP 请求报文 请求行 方法字段(Request Method) URL字段(Uniform Resource Locator) HTTP 协议版本字段(略) 请求/响应 ...

  7. 《图解HTTP》读书笔记(五:HTTP报文结构)

    用于 HTTP 协议交互的信息被称为 HTTP 报文. 请求端(客户端) 的HTTP 报文叫做请求报文, 响应端(服务器端) 的叫做响应报文.HTTP 报文本身是由多行(用 CR+LF 作换行符) 数 ...

  8. HTTP 协议基础概念和报文结构

    基础概念 1.WWW(World Wide Web,万维网)构建技术有3项: (1)把SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文 ...

  9. http的报文结构和状态码的含义

    HTTP响应报文解剖 响应报文结构 HTTP的响应报文也由三部分组成(响应行+响应头+响应体): 以下是一个实际的HTTP响应报文: ①报文协议及版本: ②状态码及状态描述: ③响应报文头,也是由多个 ...

随机推荐

  1. 【问题解决:死锁】Lock wait timeout exceeded; try restarting transaction的问题

    执行数据删除操作时一直超时并弹出Lock wait timeout exceeded; try restarting transaction错误 解决办法 1.先查看数据库的事务隔离级别 select ...

  2. 分布式强化学习基础概念(Distributional RL )

    分布式强化学习基础概念(Distributional RL) from: https://mtomassoli.github.io/2017/12/08/distributional_rl/ 1. Q ...

  3. Linux 下终端 C 语言控制光标的技巧

    // 清除屏幕 #define CLEAR() printf("\033[2J") // 上移光标 #define MOVEUP(x) printf("\033[%dA& ...

  4. <aop:aspect>与<aop:advisor>的区别

    在开发过程中,不少有Spring Aop的使用,在面向切面编程时,我们会使用< aop:aspect>:在进行事务管理时,我们会使用< aop:advisor>.那么,对于&l ...

  5. 删除node_modules文件

    删除node_modules文件夹报错:路径太长,无法删除. npm install rimraf -g rimraf node_modules

  6. Codeforces 600E. Lomsat gelral(Dsu on tree学习)

    题目链接:http://codeforces.com/problemset/problem/600/E n个点的有根树,以1为根,每个点有一种颜色.我们称一种颜色占领了一个子树当且仅当没有其他颜色在这 ...

  7. 一些常见的第三方UI库

    第三方UI库 1 bootstrap Bootstrap是Twitter推出的一个用于前端开发的开源工具包.它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个C ...

  8. tarjan 缩点(模板)

    描述: 给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大.你只需要求出这个权值和. 注:允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次. 思路: ...

  9. class与struct的区别

    C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能: ①struct能包含成员函数吗? 能! ②struct能继承吗? 能!! ...

  10. CAP原则

    CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可兼得 分布式系 ...