一、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. hoj2798 Globulous Gumdrops

    Globulous Gumdrops My Tags   (Edit)   Source : 2008 Stanford Programming Contest   Time limit : 1 se ...

  2. Codevs 1523 地精部落

    1523 地精部落 省队选拔赛  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 大师 Master 题解       题目描述 Description 传说很久以前,大地上居住 ...

  3. 了解cookie

    1.cookie数据会自动在Web浏览器和Web服务器之间传输的,因此服务端脚本就可以读,写存储在客户端的cookie值. 2.在javascript中使用cookie不会采用任何加密机制,因此是不安 ...

  4. SpringBoot | 遇坑总结 | JPA

    1. Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ...

  5. Gym - 101810B ACM International Collegiate Programming Contest (2018)

    bryce1010模板 http://codeforces.com/gym/101810 #include <bits/stdc++.h> using namespace std; #de ...

  6. audio、video的控制

    W3C上面给的是js控制相关的播放与暂停,不过在实际开发中我们多会选择JQ来操作的,毕竟方便很多,而play()和pause()用于js play并不是jQuery的函数,而是DOM元素的函数,所以我 ...

  7. linux 下vim中关于删除某段,某行,或全部删除的命令

    1,先打开某个文件: vim   filename 2,转到文件结尾 在命令模式输入 G 3,转到10行 在命令模式输入 10G 4,删除所有内容:先用G 转到文件尾,然后使用下面命令: :1, .d ...

  8. 《javascript设计模式》笔记之第四章:继承

    一:首先,一个简单的继承实例: 首先是创建一个父类Person: function Person(name) { this.name = name; } Person.prototype.getNam ...

  9. django-form and fields validation

    参考资料 清除数据与表单验证 清除数据时会进行表单验证. 在表格处理时有三种clean方法可调用,通常是在对表单调用is_valid()时执行. clean响应:一般有两种结果,如果处理的数据有问题, ...

  10. aspectj xml

    1.接口和类 1.1 ISomeService 接口 public interface ISomeService { public void doSome(); public void dade(); ...