HTTP1.1初识

摘要:
POST方法在提交表单时最常用。POST/login.jspHTTP/1.1接受:image.gif(…对于HEAD请求的响应部分,其HTTP头中包含的信息与通过GET请求获得的信息相同。HTTP响应在接收并解释请求消息后将返回HTTP响应消息。与HTTP请求类似,HTTP响应也由三部分组成,即:状态行、消息头和响应主体。

Http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议。  

Http1.1版中,有一个持续连接(Persistent Connections)机制,其作为Http1.1中建立连接的缺省行为。通过这种连接,浏览器可以在建立一个连接之后,发送请求并得到回应,然后继续发送请求并再次得到回应(不用断开连接)。且客户端可以连续发送多个请求,而不用等待每一个响应的到来。

Http URL

格式:
http://host[:port][abs_path]
http表示要通过HTTP协议来定位网络资源;

host表示合法的Internet主机域名或者IP地址(以点分十进制格式表示);

Port用于指定一个端口号,拥有被请求资源的服务器主机监听该端口的TCP连接。如果port是空,则使用缺省的端口80。

abs_path指定请求资源的URI(Uniform Resource Identifier,统一资源标识符),如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出。通常这个工作浏览器就帮我们完成了。

Http 请求

客户端通过发送HTTP请求向服务器请求对资源的访问
HTTP请求由三部分组成,分别是:请求行,消息报头,请求正文

请求行以一个方法符号开头,后面跟着请求URI和协议的版本,以CRLF(回车换行)作为结尾。请求行以空格分隔。除了作为结尾的CRLF外,不允许出现单独的CR或LF字符,格式如下:
– Method Request-URI HTTP-Version CRLF

Method表示请求的方法;Request-URI是一个统一资源标识符,标识了要请求的资源;HTTP-Version表示请求的HTTP协议版本; CRLF表示回车换行。例如:
– GET /index.html HTTP/1.1 (CRLF)

http请求-方法

 方法                    作用

 GET            请求获取由Request-URI所标识的资源
 POST           在Request-URI所标识的资源后附加新的数据
 HEAD           请求获取由Request-URI所标识的资源的响应消息报头
 DELETE         请求服务器删除由Request-URI所标识的资源
 TRACE          请求服务器回送收到的请求信息,主要用于测试或诊断
 CONNECT        保留将来使用
 OPTIONS        请求查询服务器的性能,或者查询与资源相关的选项和需求
 PUT            请求服务器存储一个资源,并用Request-URI作为其标识

GET方法用于获取由Request-URI所标识的资源的信息,常见形式是:
–GET Request-URI HTTP/1.1
•当我们通过在浏览器的地址栏中直接输入网址的方式去访问网页的时候,浏览器采用的就是GET方法向服务器获取资源

POST方法用于向服务器发送请求,要求服务器接受附在请求后面的数据。POST方法在表单提交的时候用的最多
•采用POST方法提交表单的例子
POST /login.jsp HTTP/1.1 (CRLF)
Accept:image/gif (CRLF) (….)
Host:www.sample.com (CRLF)(….)
….
Cache-Control:no=cache (CRLF)
(CRLF)
username=zhangsan&password=123456

HEAD方法与GET方法几乎是一样的,他们的区别在于HEAD方法只是请求消息报头,而不是完整的内容。对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源的内容,就可以得到Request-URI所标识的资源的信息。这个方法通常用于测试超链接的有效性,是否可以访问,以及最近是否更新等

*在HTML中,书写get和post,不区分大小写,但HTTP协议中的GET和POST只能是大写形式,其他方法也是一样。

 

Http 响应

在接收和解释请求消息后,服务器会返回一个HTTP响应消息;
与HTTP请求类似,HTTP响应也是由三个部分组成,分别是:状态行,消息报头,响应正文。

状态行由协议版本,数字形式的状态代码,相应的状态描述组成,各元素之间以空格分隔,除了结尾的CRLF(回车换行)序列外,不允许出现CR或LF字符。格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
HTTP-Version表示服务器HTTP协议的版本,Status-Code表示服务器发回的响应代码,Reason-Phrase表示状态代码的文本描述, CRLF表示回车换行,例如:
–HTTP/1.1 200 OK (CRLF)

状态代码由三位数字组成,表示请求是否被理解或被满足,状态描述给出了关于状态代码的简短文本描述;
状态代码的第一个数字定义了响应的类别,后面两个数字没有具体的分类。第一个数字有五种可能的取值;
1xx:  指示信息—表示请求已接收,继续处理
2xx:  成功—表示请求已经被成功接收,理解,接受
3xx:  重定向—要完成请求必须进行更进一步的操作
4xx:  客户端错误—请求有语法错误或请求无法实现
5xx:  服务器端错误—服务器未能实现合法的请求 


状态代码        状态描述                               说明:
  200           OK                               客户端请求成功
  400           Bad Request                      客户端请求有语法错误,不能被服务器所理解
  401           Unauthorized                     请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
  403           Forbidden                        服务器收到请求,但是拒绝提供服务
  404           Not Found                        请求资源不存在,eg:输入了错误的URL
  500           Internal Server Error            服务器发生不可预期的错误,导致无法完成客户的请求

  503           Server Unavailable               服务器当前不能处理客户端的请求,一段时间后可能恢复正常

免责声明:文章转载自《HTTP1.1初识》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Error: Unexpected HTTP status 413 'Request Entity Too Large' onRedis Cluster 部署下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SIP协议参数详情

SIP消息结构 请求消息和响应消息都包括SIP消息头字段和SIP消息体字段; SIP消息头主要用来指明本消息是有由谁发起和由谁接受,经过多少跳转等基本信息; SIP消息体主要用来描述本次会话具体实现方式; 请求消息格式 SIP请求消息的格式,由SIP消息头和一组参数行组成 消息体定义:  Call-ID:头字段是用来将消息分组的唯一性标识  From:头字段...

nginx使用:正向代理、反向代理、负载均衡。常用命令和配置文件

文章目录前言 原文地址→→ 一、nginx简介 1. 什么是 nginx 和可以做什么事情 2.Nginx 作为 web 服务器 3. 正向代理 4. 反向代理 5. 负载均衡 6.动静分离 二、Nginx 的安装(Linux:centos为例)1. 准备工作2. 开始安装3. 运行nginx4. 防火墙问题 三、 Nginx 的常用命令和配置文件 1....

<Android Framework 之路>Android5.1 MediaScanner

前言 MediaScanner是Android系统中针对媒体文件的扫描过程,将储存空间中的媒体文件通过扫描的方式遍历并存储在数据库中,然后通过MediaProvider提供接口使用,在Android多媒体中占有很重要的位置。 源码位置 packagesprovidersmediaprovider frameworksasemediajavaandroi...

Android DeepLink 深度链接技术实现

一、DeepLink 技术介绍 DeepLink,即为深度链接技术,主要应用场景是通过Web页面直接调用Android原生app,并且把需要的参数通过Uri的形式,直接传递给app,节省用户的注册成本。 DeepLink 通常运用于App社交分享、App广告引流、App裂变活动、Web to App、分享效果统计、沉默用户唤醒等场景,对广告引流、活动推广、...

nginx+tomcat负载均衡搭建

一、      单独部署tomcat和nginx Nginx版本:nginx-1.13.5 Tomcat版本:apache-tomcat-8.5.8 操作系统:win10 必须先部署一个tomcat服务器。Tomcat服务器部署好后,登录tomcat服务器:localhost:8080 显示如下界面,说明部署成功。关于tomcat的部署就不详细介绍了。  ...

【Android Developers Training】 101. 显示快速联系人挂件(Quick Contact Badge)

注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。 原文链接:http://developer.android.com/training/contacts-provider/display-contact-badge.html 这节课将会向你展示如何添...