一、HTTP概述
http协议是一种超文本协议,它是一种请求/响应式的协议
http协议的特点:
①. 支持客户端(浏览器是一种web客户端)/服务器模式
②.简单快速:客户端想服务器请求服务时,只需要传送请求方式和路径,由于http简单,使得http服务器的程序规模小,因而通信速度很快
③. 灵活:http允许传送任意类型的数据,正在传送的数据类型有Content-Type
加以标记
④. 无状态: HTTP是无状态协议。无状态是指协议对事物处理没有记忆能力,如果后续需要签名的信息,必须重传。
HTTP1.1
一个TCP可以传送多个HTTP请求和响应,从而减少了建立和关闭的消耗和延时
HTTP的工作方式:①建立连接②发送请求消息③发送响应消息④关闭连接
二、HTTP请求消息
2.1 GET方式:
当用户在浏览器地址栏中直接输入某个URL地址或者单击网页上的一个超链接时,浏览器将使用GET方式发送请求。
注意:如果将网页上的form表单的method属性设置为GET或者不设置method属性(默认GET),当用户提交表单时,浏览器也将使用GET方式发送请求。
使用GET方式传送的数据量有限,最多不能超过1KB
2.2 POST方式:
如果网页上的form表单method
的方式设置为post
,当用户提交表单时,浏览器将使用post方式提交表单。并把各个表单元素及数据作为HTTP消息的实体内容发送个服务器,而不是作为URI地址的参数传递
另外,在使用POST方式向服务器传递数据时:Content-Type
消息会自动设置为application/x-www-form-urlencoded
; contend-Lenght
消息会自动设置为实体内容的长度
2.3 二者比较
Post
传送的数据大小无限制Post
比GET
方式更安全
三、 HTTP头子段
3.1 状态码含义
状态码 | 含义 |
---|---|
100~199 | 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程 |
200~299 | 表示成功接收请求并已完成整个处理过程 |
300~399 | 为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址 |
400~499 | 客户端的请求有错误 |
500~599 | 服务器端出现错误 |
• 200
(正常): 表示一切正常,返回的是正常请求结果
• 302/307
(临时重定向):指出被请求的文档已被临时移动到别处,此文档的新的URL在Location响应头中给出。
• 304
(未修改):表示客户机缓存的版本是最新的,客户机可以继续使用它,无需到服务器请求。
• 404
(找不到): 服务器上不存在客户机所请求的资源。
• 500
(服务器内部错误): 服务器端的程序发生错误
3.2 常用请求头:
• Accept:浏览器可接受的MIME类型
• Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
• Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip
• Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。 可以在浏览器中进行设置。
• Host:初始URL中的主机和端口
• Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面
• Content-Type:内容类型
• If-Modified-Since: Wed, 02 Feb 2011 12:04:56 GMT利用这个头与服务器的文件进行比对,如果一致,则从缓存中直接读取文件。
• User-Agent:浏览器类型.
• Content-Length:表示请求消息正文的长度
• Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep -Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接
• Cookie:这是最重要的请求头信息之一
• Date:Date: Mon, 22 Aug 2011 01:55:39 GMT请求时间GMT
3.3 常用响应头
响应头字段用于向客户端传递附加信息
○ Location: http://www.it315.org/index.jsp指示新的资源的位置
○ Server:apache tomcat指示服务器的类型
○ Content-Encoding: gzip服务器发送的数据采用的编码类型
○ Content-Length: 80 告诉浏览器正文的长度
○ Content-Language: zh-cn服务发送的文本的语言
○ Content-Type: text/html; charset=GB2312服务器发送的内容的MIME类型
○ Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT文件的最后修改时间
○ Refresh: 1;url=http://www.it315.org指示客户端刷新频率。单位是秒