一、HTTP协议简介

1、客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式.dos环境下可直接通过telnet命令连上web服务器,使用HTTP协议发送请求获取某个页面.

2、HTTP是超文本传输协议,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程,HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点.

3、HTTP协议的版本有HTTP/1.0、HTTP/1.1,在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源,HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源.可以使用telnet验证,目前都使用http1.1.

4、一个web页面中,使用img标签引用了三幅图片,当客户端访问服务器中的这个web页面时,客户端总共会访问几次服务器,即向服务器发送了几次HTTP请求.如下的一个页面:

<head>
<script type="text/javascript" src="..." />
<link rel="stylesheet" type="text/css" href="css/reset.css">
</head>
<body>
<img alt="a" src="a.png">
<img alt="b" src="b.png"/>
</body>
</html>

客户端访问这个页面时总共会向服务器发送5次请求,因为浏览器可以解析这些js,css,图片等资源,解析到这些相应在服务器上的资源时,则又会向服务器发送请求.所以将这些东西合并,减少服务器访问次数,可一定程度上减轻服务器的压力.访问新浪首页时会向服务器发送上百次请求.

二、HTTP请求

1、客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求.一个完整的HTTP请求包括如下内容:一个请求行、若干消息头、以及实体内容,请求头和实体内容之间有一个空行,如下所示 :

2、HTTP请求的细节——请求行

请求行中的GET称之为请求方式,请求方式目前主要有GET、 POST,用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式或ajax实现.不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:GET /mail/1.html?name=abc&password=xyz HTTP/1.1,GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K.如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制.

3、HTTP请求的细节——消息头

例:

主要消息头含义如下:

ps:1.accept */*代表可以接受任何数据.2.if-Modified-Since,服务器接受到这个时间后会和要访问资源的最后跟新时间比较,如果大于资源最后跟新时间就会拿客户端的缓冲而不会去访问服务器,返回状态码304或307,如果小于资源的跟新时间才会访问web资源,返回状态码200.

二、HTTP响应

1、一个HTTP响应代表服务器向客户端回送的数据,它包括:一个状态行、若干消息头、以及实体内容 .

例:

2、HTTP响应的细节——状态行

格式: HTTP版本号 状态码 原因叙述<CRLF>,举例:HTTP/1.1 200 OK,状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数.响应状态码分为5类,如下所示:

ps:100-199一般很少使用,307和304表示请求的资源是从缓冲拿的,404表示访问的web资源不存在,必定是客户端的问题,403表示没有访问资源的权限.

3、HTTP响应细节——常用响应头

服务器通过响应头可以完全控制浏览器行为,例:

含义如下:

HTTP实用头字段-range实现断点续传功能,略.

可编写servlet程序,设置响应头,来具体查看浏览器的行为。

javaEE(2)_http协议的更多相关文章

  1. Java精选笔记_HTTP协议

    HTTP协议 HTTP概述 介绍 HTTP是Hyper Text Transfer Protocol的缩写,即超文本传输协议. HTTP是一种请求/响应式的协议,客户端在与服务器端建立连接后,就可以向 ...

  2. javaweb基础(4)_http协议

    一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...

  3. 互联网_http协议

    一.定义 http协议叫做超文本传输协议,是从web服务器传输超文本到本地浏览器的协议. 二.特征 1.无连接:即每次连接仅处理一个请求,服务器处理完客户的请求,并收到客户端的响应后,即断开连接.采用 ...

  4. [转】:HTTP请求流程(一)----流程简介

    http://www.cnblogs.com/stg609/archive/2008/07/06/1236966.html HTTP请求流程(一)----流程简介 最近一直在研究如何让asp.net实 ...

  5. [置顶] Java Web开发教程来袭

    Java Web,是用Java技术来解决相关web互联网领域的技术总和.web包括:web服务器和web客户端两部分.Java在客户端的应用有java applet不过现在使用的很少,Java在服务器 ...

  6. JAVA学习之路与大家分享

    这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...

  7. Python爬虫视频教程

    ├─第1章_[第0周]网络爬虫之前奏 │ ├─第1节_"网络爬虫"课程内容导学 │ │ 第1部分_全课程内容导学.mp4 │ │ 第2部分_全课程内容导学(WS00单元)学习资料. ...

  8. JavaEE 要懂的小事:一、图解Http协议

    Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆         瓣:BYSocket FaceBook:BYSocket Twitter   ...

  9. [javaEE] HTTP协议总结

    OSI网络7层协议 物理层 ==> 数据链路层 ==> 网络层ip ==> 传输层 TCP UDP ==>会话层 ==>表示层 ==> 应用层 HTTP FTP S ...

随机推荐

  1. 要单独拿出来讲的a标签

    a标签的属性 href属性赐予a标签力量:href属性指定要通过a标签借助浏览器请求的资源,可以是图片.视屏.网站.音频等.不加herf属性的a标签就是一个没有任何特殊样式和功能的文本容器. targ ...

  2. C语言中位运算符异或“∧”的作用

    异或运算符∧也称XOR运算符.它的规则是若参加运算的两个二进位同号,则结果为0(假):异号则为1(真).即0∧=,∧=,∧=.如: 即071∧,结果为023(八进制数). “异或”的意思是判断两个相应 ...

  3. idea | 设置支持java8的lambda表达式

    修改配置: setting:       project structure:

  4. VLAN-2-私有VLAN

          好的设计方式通常要求工程师为每个vlan使用一个ip子网.然而在有些情况下,将设备分割到许多小VLAN中以增加安全性的需求,与节省可用子网的目标相互冲突.通过使用私有vlan,交换机能够分 ...

  5. [題解](最小生成樹/LCA)luogu_P1967貨車運輸

    一道好題不出所料又抄的題解 1.首先對於這張圖肯定要考慮走哪些邊不走哪些邊,發現我們想要的肯定那些邊權最大的邊,所以想到最大生成樹 這樣能保證選到盡量大的邊 2.跑完最大生成樹后每兩點之間就有唯一路徑 ...

  6. JS 两个数组合并

    让我们先考虑下面这情况: 代码如下: var a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ];var b = [ "foo", "bar", ...

  7. LINK fatal error LNK1123 转换到COFF期间失败

    1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 全部重新生成: 0 已成功, 1 已失败, 0 已跳过 ==========解决方法如下 ...

  8. 51nod 1640 天气晴朗的魔法 二分 + 克鲁斯卡算法(kruskal算法) 做复杂了

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 一开始想的时候,看到要使得最大值最小,那这样肯定是二分这个最大值了 ...

  9. Storm编程入门API系列之Storm的Topology默认Workers、默认executors和默认tasks数目

    关于,storm的启动我这里不多说了. 见博客 storm的3节点集群详细启动步骤(非HA和HA)(图文详解) 建立stormDemo项目 Group Id :  zhouls.bigdata Art ...

  10. h5画圆

    下面一段代码是,h5的画圆,半圆,四分之一圆等效果 <!DOCTYPE html> <html lang="en"> <head> <me ...