• 概述

      • 特点
    • 1HTTPURL
    • 2HTTP协议请求
    • 3请求报头Request Header
    • 4请求正文
    • 5HTTP请求方法GET POST

概述:

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统
http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。

特点:

1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

1、HTTP——URL:

HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:
http://host[“:”port][abs_path]
http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口8080;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。
例:
1、输入:www.guet.edu.cn
浏览器自动转换成:http://www.guet.edu.cn/
2、http:192.168.0.116:8080/index.jsp

2、HTTP——协议请求:

http请求由三部分组成,分别是:请求行、消息报头、请求正文
1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF
其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。
请求格式:
当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:
① 请求方法 URI 协议/版本
② 请求头(Request Header)
③ 请求正文
请求方法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的版本。
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
应用举例:
GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF)
POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。

eg:POST /reg.jsp HTTP/ (CRLF)
Accept:image/gif,image/x-xbit,... (CRLF)
...
HOST:www.guet.edu.cn (CRLF)
Content-Length:22 (CRLF)
Connection:Keep-Alive (CRLF)
Cache-Control:no-cache (CRLF)
(CRLF)         //该CRLF表示消息报头已经结束,在此之前为消息报头
user=jeffrey&pwd=1234  //此行以下为提交的数据

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

3、请求报头(Request Header)

HTTP头字段包括4类:
①general-header ;
②request-header ;
③response-header ;
④entity-header . 。
请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。

Accept:image/gif.image/jpeg.*/*Accept-Language:zh-cnConnection:Keep-AliveHost:localhostUser-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)Accept-Encoding:gzip,deflate.

4、请求正文

请求头和请求正文之间是一个空行,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息:
username=jinqiao&password=1234
在以上的例子的HTTP请求中,请求的正文可以是一行内容,也可以是多行内容

5、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方法提交的数据则可以从标准输入流中获取

Http(超文本传输协议)那点儿破事相关推荐

  1. RFC1945 超文本传输协议--HTTP/1.0 之一

    组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook ...

  2. Servlet - HTTP超文本传输协议

    HTTP (超文本传输协议) 超文本传输协议(HTTP)是用于协作.分布式.超媒体信息系统的应用级协议.它是用于建立客户端和服务器之间通信的数据通信协议.   HTTP协议是基于TCP/IP的通信协议 ...

  3. HTTP协议(HyperText Transfer Protocol,超文本传输协议)

    HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准. HTTP是一个基于TCP/IP通信 ...

  4. 吾解——HTTP(超文本传输协议)

    今天拜读了一本<图解HTTP>,将HTTP总结一下. HTTP(超文本传输协议):一种规则 1.定义:一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给服务器什么样 ...

  5. 计算机网络技术超文本,网络协议确定了计算机网络传递和管理信息的规范,其中HTTP属于()A、超文本传输协议B、传输控制协...

    网络协议确定了计算机网络传递和管理信息的规范,其中HTTP属于()A.超文本传输协议B.传输控制协 更多相关问题 尿血证常见的病因病机有______.脾不统血.______.脾肾两虚.______. ...

  6. http超文本传输协议

    http简介 超文本传输协议(HyperText Transfer Protocol),详细规定浏览器和万维网之间互相通信的规则,是万维网交换信息的基础,允许将HTML文档从Web服务器传送到Web服 ...

  7. 超文本传输协议及HTTP包

    HTTP协议用于在Internet上发送和接收消息.HTTP协议是一种请求-应答式的协议 --客户端发送一个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包.HTTP协议使用可靠的TCP连 ...

  8. 王道考研 计算机网络20 应用层 客户端/服务器C/S模型 P2P模型 DHCP协议 域名解析系统DNS 文件传送协议FTP 万维网 超文本传输协议HTTP

    应用层概述 FTP:文件传输协议(File Transfer Protocol)是用于在网络上进行文件传输的一套标准协议. SMTP:是一种提供可靠且有效的电子邮件传输的协议. POP3 ,全名为&q ...

  9. 网络(7)-HTTP(HyperText Transfer Protocol,超文本传输协议)

    http是一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应.请求和响应消息的头以ASCII码形式给出:而消息内容则具有一个类似MIME的 ...

最新文章

  1. 八年级计算机软件,信息技术(南方出版社) 八年级下册教案(共14课)
  2. HDU 4321 Contest 3
  3. CTFshow 文件上传 web154
  4. win10电脑pppoe拨号模块损坏_电脑维修免费在线咨询
  5. python sklearn学习笔记大全(常见代码速查)
  6. 在Windows上构建OpenJDK
  7. 开窍小老虎,一步一个脚印之 初识汇编(一)
  8. linux 查看vnc端口_VNC常用操作及常见问题解决办法汇总
  9. 使用计算机正确开机方法,电脑开关机的正确步骤
  10. 用sitemesh来装饰动态的左侧菜单和内容部分
  11. python模块使用教程详解_python之mock模块基本使用方法详解
  12. 基于Spring Boot的简易版新闻管理系统
  13. mysql入门很简单习题答案_《MySQL入门很简单》练习6.6
  14. scratch3.0教程 水果忍者游戏
  15. 设置sublime默认浏览器以及快捷键
  16. python基础之输入输出语法
  17. BurpSuite系列(十)----Extender模块(扩展器)
  18. 高校实验室仪器设备管理系统/高校设备管理系统
  19. 循环冗余校验码计算CRC
  20. MFC 修改文件或者文件夹的属性。

热门文章

  1. 零售收银软件太难挑!实测市面上最受欢迎的收银软件,第一个好用
  2. matlab、carsim、prescan联合仿真从零开始详细步骤
  3. 数据库中字段类型的含义
  4. Pycharm 学校账号免费申请专业版
  5. mem系列函数使用总结
  6. mysql日期比较大小 方式_mysql中日期比较大小方法详解
  7. 如何快速发现linux系统有挖矿病毒
  8. 学习matlab(九)——绘图(三维)
  9. matlab怎么用wavedec,Matlab中wavedec使用學習及詳解 | 學步園
  10. 发现一款java鉴权认证框架sa-token(目前好像坑还很多)