一、HTTP请求格式

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:

① 请求方法 URI 协议/版本

② 请求头(Request Header)

③ 请求正文

下面是一个HTTP请求的例子:

GET/sample.Jsp HTTP/1.1

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

Accept-Language:zh-cn

Connection:Keep-Alive

Host:localhost

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

Accept-Encoding:gzip,deflate

username=jinqiao&password=1234

(1)请求方法URI协议/版本

请求的第一行是“方法URL协议版本”:GET/sample.jsp HTTP/1.1

以上代码中“GET”代表请求方法,“/sample.jsp”表示URI,“HTTP/1.1代表协议和协议的版本。

根据HTTP标准,HTTP请求可以使用多种请求方法。例如:HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。在Internet应用中,最常用的方法是GET和POST。

URL完整地指定了要访问的网络资源,通常只要给出相对于服务器的根目录的相对目录即可,因此总是以“/”开头,最后,协议版本声明了通信过程中使用HTTP的版本。

(2)请求头(Request Header)

请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。

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)

Accept-Encoding:gzip,deflate.

(3) 请求正文

请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息:

username=jinqiao&password=1234

在以上的例子的HTTP请求中,请求的正文只有一行内容。当然,在实际应用中,HTTP请求正文可以包含更多的内容。

四、HTTP请求方法:GET POST

1)GET方法

GET方法是默认的HTTP请求方法,我们日常用GET方法来提交表单数据,然而用GET方法提交的表单数据只经过了简单的编码,同时它将作为URL的一部分向Web服务器发送,因此,如果使用GET方法来提交表单数据就存在着安全隐患上。例如

Http://127.0.0.1/login.jsp?Name=zhangshi&Age=30&Submit=%cc%E+%BD%BB

从上面的URL请求中,很容易就可以辩认出表单提交的内容。(?之后的内容)另外由于GET方法提交的数据是作为URL请求的一部分所以提交的数据量不能太大

2)POST方法

POST方法是GET方法的一个替代方法,它主要是向Web服务器提交表单数据,尤其是大批量的数据。POST方法克服了GET方法的一些缺点。通过POST方法提交表单数据时,数据不是作为URL请求的一部分而是作为标准数据传送给Web服务器,这就克服了GET方法中的信息无法保密和数据量太小的缺点。因此,出于安全的考虑以及对用户隐私的尊重,通常表单提交时采用POST方法。

从编程的角度来讲,如果用户通过GET方法提交数据,则数据存放在QUERY_STRING环境变量中,而POST方法提交的数据则可以从标准输入流中获取。

方法

描述

GET

对服务器资源的简单请求

HEAD

类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

POST

用于发送包含用户提交数据的请求

PUT

传说当前请求文档的一个版本

DELETE

发送一个用来删除指定文档的请求

TRACE

发送请求的一个副本,以跟踪其处理进程

OPTIONS

返回所有可用的方法;可检查服务器支持哪些方法

CONNECT

用于ssl隧道的基于代理的请求

HTTP协议——请求格式及方法相关推荐

  1. JavaWeb | HTTP 协议请求与响应格式

    一.HTTP 是什么 计算机网络核心概念:网络协议 网络协议种类非常多,其中一些耳熟能详的,IP,TCP,UD- 其中还有一个应用非常广泛的协议HTTP,HTTP 协议大概率是咱们日后开发中用的最多的 ...

  2. HTTP协议格式(请求格式、响应格式)

    超文本传输协议 (Hypertext Transfer Protocol,简称HTTP)是应用层协议.HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接 ...

  3. HTTP协议的请求格式解析

    HTTP协议是一个使用较多的应用层协议,它是一个请求/响应式的一个协议,就是我客户端给你发一个请求,你客户端需要返回给我一样响应.首先我们来看一下HTTP协议的请求格式. HTTP请求格式: HTTP ...

  4. Linux网络:HTTP协议 | URL | 协议格式 | HTTP方法 | HTTP状态码 | Cookie与Session

    文章目录 网络计算器 服务端 客户端 HTTP协议 认识URL 协议方案名 登录信息 服务器地址.端口号 带有层次的文件路径 查询字符串 片段标识符 urlencode和urldecode HTTP协 ...

  5. HTTP请求格式、状态码及常用请求方法

    常用的HTTP请求方法,按照RFC2616标准(HTTP1.1)来看,通常有以下8种方法:get.post.put.delete.head.trace.connect.options. HTTP请求格 ...

  6. nginx请求返回html文件,nginx返回json或者文本格式的方法

    用nginx怎么返回json格式或者文本格式的数据?其实很简单,如下代码: 1.返回文本格式 location ~ ^/get_text { default_type text/html; retur ...

  7. HTTP协议漫谈 - HTTP协议请求方法

    前言 在上一篇文章<HTTP协议漫谈 - HTTP协议历史和报文结构>中介绍了HTTP协议的历史和版本变化,以及HTTP协议报文的总体结构. 按照HTTP/1.1 RFC文档中的定义,HT ...

  8. .asmx支持post请求或者get请求调用(WebService 因 URL 意外地以 结束,请求格式无法识别 的解决方法)...

    使用Post调用以asmx形式提供的webservice时,在本机调试没有调用问题.一旦部署至服务器后会提示如下信息: <html><head><title>因 U ...

  9. pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法

    在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...

最新文章

  1. R语言ggplot2可视化自动换行适配长文本图例(legend)实战:Multiple Lines for Text per Legend Label
  2. Metasploit AFP爆破模块afp_login
  3. 在 ThinkPad E470 上安装 Ubuntu 16.04 无线网卡驱动
  4. boost::hana::reverse_partial用法的测试程序
  5. php取不到post数据库,安卓post 数据到php 在写入数据库老是不成功, 数据post不到php...
  6. python opencv 读取视频流不解码_python + opencv: 解决不能读取视频的问题
  7. 技术方案:网吧无盘存储解决方案(转)
  8. 用CDR(coreldraw)怎么把图片转为矢量图
  9. linux的ib网卡驱动安装,linux安装IB网卡(mellanox)驱动
  10. 心形代码来了,Java表白大师
  11. 操作系统:文件系统——空闲块成组链接法的模拟
  12. 【芯片使用】74HCHC595
  13. Linux启动分析之Initramfs
  14. 线程中的setDaemon方法
  15. 计算机防止检查清理软件吗,解决方案:如何清理计算机垃圾-如何在不使用防病毒软件的情况下清理计算机文件垃圾?...
  16. 科研必备工具篇(持续更新)
  17. 一元三次方程求解 (laoj1114)
  18. Java 接口编程题练习
  19. linux中设置gvim高亮光标所在行和所在列
  20. Probability Weighted Compact Feature for Domain Adaptive Retrieval

热门文章

  1. 厦门大学计算机科学与技术,计算机科学与技术博士培养-厦门大学计算机科学系...
  2. 使用Google、百度等搜索引擎在指定网站内搜索指定内容
  3. [R语言]手把手教你如何绘图(万字)
  4. layui 弹框放大图片
  5. CRM系统-----学员管理系统---admin自定义开发2
  6. html代码width什么意思,width:100% 啥意思呢,在什么情况下使用?
  7. python vba 秒出结果_从Python运行VBA代码:宏可能被禁用
  8. 扇贝编程可以用c语言吗,扇贝编程手机版下载_扇贝编程app下载 v1.1.41 - 87G手游网...
  9. 海思Hi3136芯片怎么样?Hi3136处理器参数介绍
  10. 【GPS轨道精度】卫星轨道产品的精度及Bernese低轨卫星定轨模型