JavaWeb入门——HTTP协议(笔记)

一、HTTP是什么

(1)HTTP:HyperText Transfer Protocol的缩写,超文本传输协议

(2)是一种请求/响应式的协议

二、HTTP的特点

(1)支持客户端/服务器模式,即(C/S)

(2)简单快速:客户端向服务端请求服务时,只需传送请求方式和路径

(3)灵活:允许传输任意类型的数据,正在传输的数据由(Content——Type)加以标记

(4)无状态:HTTP是无状态协议,无状态是指对事务处理没有记忆能力,如果后续处理需要前面的信息,则他必须重传,这样可能会导致每次传送的数据量巨大

三、HTTP1.0和HTTP1.1

(1)基于HTTP1.0协议的交互过程有4个步骤:

        建立连接,发送请求信息,回送响应消息,关闭连接

(2)两者区别:

        HTTP1.0每次只能处理一个HTTP请求;

        HTTP1.1支持持续连接,在一个TCP连接上可以传送多个HTTP请求和响应

(3)TCP是什么:

TCP(Transmission Control Protocol)传输控制协议,是一种面向连接(连接导向)的,可靠的,基于IP的传输层协议

四、HTTP消息

HTTP消息 = HTTP请求消息 + HTTP响应消息

(1)HTTP请求消息

请求消息 = 请求行 + 请求头 + 实体内容

1.请求行

位于请求消息第一行,请求行 = (请求方式  资源路径  所使用的HTTP版本)

如: GET   /index.html   HTTP/1.1

1.1 常见的请求方式:GET、POST

GET:请求方式的默认值是GET

当用户提交表单时,浏览器也将使用GET方式发送请求,如果浏览器请求的URL中有参数部分,在浏览器生成的请求消息中,参数请求行中的资源路径后面,如:

http://www.itcast.cn/javaForum?name=lee&psd=hnxy

发送给服务器的内容是:GET  /javaForum?name=lee&psd=hnxy  HTTP/1.1

POST:把各个表单元素及数据作为HTTP消息的实体内容发送给服务器,而不是作为URI地址的参数传递,在实际开发中通常使用POST方式发送请求,主要原因有:

(1)POST传输数据大小无限制

GEt请求方式是通过请求参数传递数据的,最多可传递2KB的数据,而POST请求方式是通过实体内容传递数据的,因此可以传递数据的大小没有限制

(2)POST方式比GET方式更安全

由于GET请求方式的参数信息都会在URL地址栏明文显示,而POST请求方式传递的参数隐藏在实体内容中,用户是看不到的,因此,POST比GET方式更安全

2.请求头

请求头 = 头字段名称 +:+ 值

头字段名称不区分大小写,但习惯将单词的第一个字母大写

常见的请求头字段:Accept , Accept-Charest , Accept-Encoding , Accept-language , Host , If-Match , Referer , User-Agent

涉及到的一个概念:盗链(假设一个网站的首页中想显示一些图片信息,而在该网站的服务器并没有这些图片资源,他在通过HTML文件中使用img标记链接到其他网站的图片资源,将其展示给浏览者,这就是盗链)

(2)HTTP响应消息

响应消息 = 响应状态行+响应消息头+实体内容

(请求消息 = 请求行 + 请求头 + 实体内容)

1.HTTP响应状态行

响应状态行 = HTTP版本 + 表示成功或者错误的状态码 + 对状态啊描述的文本信息

状态码:1xx:请求已接收,需要继续处理

                2xx:请求已成功被服务器接收,理解并接受

                3xx:为完成请求,客户端需进一步细化请求

                4xx:客户端的请求错误

                5xx:服务器端出现错误

常见状态码:

200:请求成功处理,响应正常请求结果

302:表示请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求。例如,在请求重定向中,临时URI应该是响应的Location头字段所只想的资源

304:如果客户端有缓存的文档,他会在发送的请求消息中附加一个If-Modified-Since请求头,表示只有请求的文档在If-Modified-Since指定的时间之后发生过更改,服务器才需要返回新文档。状态码304表示客户端缓存的版本是最新的,客户端应该继续使用他,否则,服务器将使用状态码200返回所请求的文档

404:表示服务器找不到请求的资源。如:访问服务器不存在的网页经常返回此状态码

500:表示服务器发生错误,无法处理客户端的请求,大部分情况下,是服务器端的CGI,ASP,JSP等程序发生了错误,一般服务器会在相应消息中提供具体的错误信息

HTTP消息响应头:

常见的头字段:

Location(获取请求文档的新地址,其值为一个使用绝对路径的URL地址,多配合3xx使用,以便通知客户端自动重新连接到新的地址请求文档)在HTTP消息头中不可能同时出现Location和Content-Type这两个头字段;

Server(制定服务器软件产品的名称)

Refresh:(自动刷新页面的时间,以秒为单位,如果在字段值后边用分号隔开之后加入一个URL参数,到指定时间后会自动跳转)


本文为自己参考《JavaWeb程序设计任务教程》黑马程序员教材整理的笔记,仅供学习,不做其他用途

上一篇:javaweb 过滤器


下一篇:opencv-cvFloor返回不大于参数的最大整数值