Http请求与响应格式
原文:http://www.cnblogs.com/z941030/p/4699779.html
Http协议对浏览器发出的Request格式以及对Web服务器发出的Response格式有具体的规定。
请求部分由三部分组成:
- Requset line:请求行,位于第一行
- Request headers:请求消息头,从第二行开始至第一个空行结束
- Request body:请求正文,从第一个空行之后的都是正文
响应部分也由三部分组成:
- Response line:响应行,位于第一行
- Response headers:响应消息头,从第二行开始至第一个空行结束
- Response body:响应正文,从第一个空行之后的都是正文
一、Http请求
Http请求具体格式如下:
|
Method Path-to-resource Http/Version-number |
|
User-agent 浏览器的类型 Accept 浏览器接受的MIME类型 Accept language 用户选择的接受语言 Accept-charset 用户首选的编码字符集 …… |
|
空行 |
|
Option Request Body |
①请求行:
1.Method为请求方式,包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE,常用的是GET和POST
GET的特点:默认的请求方式。
当请求的资源路径为/SdustExam/Login.jsp?username=admin&password=123456时,GET方式会把表单的请求的数据放在请求的URI的后面,?username=admin&password=123456,这样会暴露数据,而且请求行长度有限。
POST的特点(经常使用的):借助HTML中的form表单。<form action="Login.jsp" method="post">请求参数出现在正文部分,长度木有限制,相对安全。
2.Path-to-resource :请求的资源的URI。例如/SdustExam/Login.jsp
3.Http/Version-number:客户端使用的协议的版本,有HTTP/1.0和HTTP/1.1。
HTTP/1.0:特点:每次请求服务器上的资源都要建立新的连接,响应完毕后都会关闭连接。是无状态的协议。
HTTP/1.1:特点:在一次TCP/IP连接的基础上可以发出多次请求和得到多次的响应。比1.0多了一些请求和响应头。
②请求消息头
向服务器传递附加信息
Accept:通知服务器,浏览器可以接受的MIME类型。(文件系统中用文件扩展名区分数据的类型。网络上用MIME类型来区分数据类型。Tomcat\conf\web.xml)
MIME类型名称:大类型/小类型 如text/html、text/css等等
Accept-Charset:通知服务器,浏览器支持的字符集,如gbk,utf-8
Accept-Encoding:通知服务器,浏览器能够解码的数据压缩方式。比如:gzip
Accept-language:通知服务器,所希望的语言
Host:请求的主机和端口
Referer:是一个URL地址。取值是当前页面之前的那个页面地址的。防盗链用
Content-Type:通知服务器,请求正文的MIME类型。取值:application/x-www-form-urlencoded默认值,对应的是form表单的enctype属性
If-Modified-Since:通知服务器,缓存的文件的最后修改时间。
User-Agent:通知服务器,浏览器类型.
Content-Length:表示请求消息正文的长度
Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep -Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接 )
Cookie:这是最重要的请求头信息之一(会话有关)
二、http响应
http响应具体格式如下:
|
Http/Version-number Statuscode message |
|
Server 服务器的类型信息 Content-type 响应的MIME类型信息 Content-length 被包含在相应类型中的字符数量 …… |
|
空行 |
|
Option Response Body |
①响应行:
Http/Version-number:服务器用的协议版本
Statuscode:响应码。代表服务器处理的结果的一种表示,常用的响应码有:
200:正常
302/307:重定向
304:服务器的资源没有被修改
404:请求的资源不存在
500:服务器报错了
message:响应码描述。例如200的描述为OK
②响应消息头:
Location:通知客户端,指示新的资源的位置(结合302/307来用。请求重定向)
Server:通知客户端,服务器的类型
Content-Encoding:通知客户端,响应正文的压缩编码方式。常用的是gzip。
Content-Length:通知客户端响应正文的数据大小
Content-Type:通知客户端响应正文的MIME类型
Refresh:让浏览器自动刷新。取值为整数(刷新的时间间隔,单位是秒)
Refresh:3
Refresh:3;URL=其他资源的URI
Content-Disposition:通知客户端,以下载的方式打开资源。
Content-Disposition:attachment;filename=1.jpg
Set-Cookie:SS=Q0=5Lb_nQ; path=/search服务器端发送的Cookie(会话有关)
Expires: -1 网页的有效时间。单位是毫秒,-1为通知客户端不要缓存
Cache-Control: no-cache (1.1) 通知客户端不要缓存
Pragma: no-cache (1.0) 通知客户端不要缓存
Http请求与响应格式的更多相关文章
- 【计算机网络】HTTP请求和响应格式
HTTP请求格式:<request-line><headers><blank line>[<request-body>]说明:第一行必须是一个请求行(r ...
- HTTP——请求和响应格式
HTTP请求格式:<request-line><headers><blank line>[<request-body>]说明:第一行必须是一个请求行(r ...
- angular学习笔记(二十五)-$http(3)-转换请求和响应格式
本篇主要讲解$http(config)的config中的tranformRequest项和transformResponse项 1. transformRequest: $http({ transfo ...
- [WEB API] CLIENT 指定请求及回应格式(XML/JSON)
[Web API] Client 指定请求及响应格式(xml/json) Web API 支持的格式请参考 http://www.asp.net/web-api/overview/formats-an ...
- ASP.NET Core 请求/查询/响应参数格式转换(下划线命名)
业务场景: 在 ASP.NET Core 项目中,所有的代码都是骆驼命名,比如userName, UserName,但对于 WebApi 项目来说,因为业务需要,一些请求.查询和响应参数的格式需要转换 ...
- HTTP请求格式和HTTP响应格式
主要内容: 1.HTTP请求格式 2.HTTP响应格式 一.HTTP请求格式 当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:l 请求方 ...
- http请求响应格式
当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:l 请求方法URI协议/版本l 请求头(Request Header)l 请求正 ...
- Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用
Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...
- Spring Boot 2.x基础教程:如何扩展XML格式的请求和响应
在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理.那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式 ...
随机推荐
- selenium+python笔记7
#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc: 测试126邮箱的登陆功能 1.使用公共方法public. ...
- Mongoose学习参考文档
一.快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对 Entit ...
- NT内存
在NT/2K/XP中,操作系统利用虚拟内存管理技术来维护地址空间映像,每个进程分配一个4GB的虚拟地址空间.运行在用户态的应用程序,不能直接访问物理内存地址:而运行在核心态的驱动程序,能将虚拟地址空间 ...
- 集成 Apple Pay
作者感言 在中秋过后终于把国内的三大支付平台SDK集成都搞定了, 现在我们终于可以来研究Apple自家的支付Apple Pay最后:如果你有更好的建议或者对这篇文章有不满的地方, 请联系我, 我会参考 ...
- linux查看是否已安装GCC及安装GCC
输入:gcc -v;如果提示未找到命令即表示没有安装 使用:yum install gcc即可
- Android MotionEvent事件响应机制
在android中,事件主要包括点击.长按.拖曳.滑动等操作,这些构成了Android的事件响应,总体来说,所有的事件都由如下三个部分作为基础构成: 按下(action_down),移动(action ...
- ios基础篇(六)——UITextView的常用方法及技巧
上篇说到了UITextField,我们先来说说UITextView和UITextField的不同: UITextView支持多行输入; UITextFiled只支持单行; UITextView没有pl ...
- [转]Java程序员们最常犯的10个错误
1.将数组转化为列表 将数组转化为一个列表时,程序员们经常这样做: List<String> list = Arrays.asList(arr); Arrays.asList()会返回一个 ...
- 陈朱兴-js写法【案例】:
ajax请求: 一.从服务器端请求数据: var url = '';url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='+ ...
- dll和ocx比较
ActiveX,OLE是基于COM的一种应用,其文件后缀一般以dll和ocx结尾:ocx作为一种特殊的dll文件,具有一定的用户界面和事件响应,而dll文件只是方法和属性的集合. 一.关于DLL的介绍 ...