HTTP协议

一. HTTP简介

1. 定义:

(1) HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于

定义WEB浏览器与WEB服务器之间交换数据的过程。

(2) 客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议是对

浏览器客户端和服务器端之间数据传输的格式规范

2. 图解:


注意:一个请求一定会有一个响应,而且只有一个响应。

3. 查看http协议的工具:

(1) 使用火狐的firebug插件(右键-->firebug-->网络);

(2) 使用谷歌的"审查元素";

(3) 使用系统自带的telnet工具(远程访问工具);

① telnet IP地址 端口,比如telnet localhost 8080可以用来访问tomcat服务器;

② 此时输入命令,命令行界面是不会显示输入的内容的,这时候我们按住ctrl+],然后回车,这就可以看到回

显;

③ 输入请求内容;

④ 回车,即可看到服务器响应信息。

注意:如果当我们在命令行输入telnet命令,提示"telnet"不是内部或外部命令,也不是可运行的程序,那是因为

系统默认是关闭远程访问的,我们需要手动开启,手动开启telnet方法如下:控制面板--->程序--->程序和功能-

-->启用或关闭windows功能--->Telnet客户端前打上对勾。


4. http协议内容:

(1) 请求(浏览器--->服务器)


(2) 响应(服务器--->浏览器)


5. HTTP协议1.0和HTTP协议1.1的区别:

HTTP协议版本有两种,分别是:HTTP 1.0和HTTP 1.1,它们的主要区别如下:

(1) 在HTTP 1.0协议中,当浏览器客户端与服务端建立连接之后,只能发送一次请求,一次请求之后就会关闭连

接,也就是说只能获得一个web资源。

(2) 在HTTP 1.1协议中,当浏览器客户端与服务端建立连接之后,可以在一次连接中发送多次请求,也就是说在

一个连接上可以获取多个web资源。(基本都使用1.1版本)

二. HTTP请求

客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求,一个完整的

HTTP请求包含如下内容:一个请求行、若干请求头、以及实体内容。其中的一些请求头(消息头)和实体内容都是

可选的,请求头和实体内容之间要用空行隔开。


1. 请求行

请求行用于描述客户端的请求方式、请求的资源名称、以及使用的HTTP协议版本号。如下:

GET /zw_http/RequestDemo1 HTTP/1.1(从右往左看)

(1) HTTP协议版本使用1.1版本。

(2) 请求资源:

① URL(统一资源定位符):只能定位互联网资源,是URI的子集。如:

http://localhost:8989/zw_http/index.html。

② URI(统一资源标记符):可以用于标记任何资源。可以是本地文件系统资源,局域网的资源,也可以是互联网

的资源。

(3) 请求方式:

常见的请求方式有:GET,POST,HEAD,TRACE,PUT,CONNECT,DELETE。

常用的请求方式有:GET,POST。

2. 注意:GET和POST的区别:

(1) GET方式提交:

① 地址栏(URI)会跟上参数数据,以?开头,多个参数之间以&分割,其实是跟在了请求头URI的后面。比如:

GET /zw_http/RequestDemo1?name=eric&password=123456 HTTP/1.1

② GET方式提交参数数据有限制,不超过1KB。

③ GET方式不适合提交敏感数据,比如密码,因为会暴露。

注意:浏览器直接访问的请求,默认提交方式是GET方式。

(2) POST方式提交:

① 参数不会跟在URI的后面,而是跟在请求的实体内容中。没有?开头,多个参数之间以&分割。比如:


② POST提交的参数数据容量没有限制。

③ POST方式可以提交敏感数据。

注意:只有POST方式提交才会有实体内容,并且要有参数,也就是说必须是有参数的POST方式提交才会有实体

内容。并且doGet方法是拿不到POST提交的数据的。

3. 请求头

(1) 常见请求头:


(2) Accept请求头是浏览器发送给服务器的,把这个请求发过去之后,服务器拿到这个请求就会知道应该返回什

么类型的数据给服务器,要不然浏览器可能会读不懂。

(3) 每一个请求都必须有Host请求头,代表这次要访问的地址。 

4. 实体内容:

只有POST提交的参数会放到实体内容中去。

三. HTTP响应

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

响应头(消息头)和实体内容都是可选的,响应头和实体内容之间要用空行隔开。


1. 响应行

响应行用于描述服务器对请求的处理结果。

(1) HTTP协议版本。

(2) 状态码:用于表示服务器对请求的处理结果(状态),它是一个三位的十进制数。状态码分为五类:


常见的状态码如下:

① 200:表示请求处理完成并完美返回。

② 302:表示请求需要进一步细化。

③ 404:表示客户访问的资源找不到。

④ 500:表示服务器的资源发生错误。(服务器内部错误)

(3) 状态描述。

2. 响应头

响应头用于描述服务器的基本信息以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理

等一会儿它回送的数据。

(1) 常见的响应头:


3. 实体内容:

代表服务器向客户端回送的数据。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

处女座的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值