十年代码生涯一瞬间,代码即人生!
<返回上一级
HTTP协议
安全防护

HTTP协议

简介

- http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。
- url(统一资源定位符)也被称为网页地址,是互联网标准的地址。格式如下:
- 协议://服务器ip[:端口]/路径/[?查询]
- http表示要通过HTTP协议来定位网络资源;服务器ip表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80;

协议://服务器IP[:端口]/路径/[?查询]

https端口:443
HTTP端口:80

请求方法(所有方法全为大写)有多种,各个方法的解释如下:

GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1

POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。
eg:POST /reg.jsp HTTP/ 1.1
Accept:image/gif,image/x-xbit,...

HOST:www.guet.edu.cn 
Content-Length:22 
Connection:Keep-Alive 
Cache-Control:no-cache 
user=jeffrey&pwd=1234  //此行以下为提交的数据

HEAD方法与GET方法几乎是一样的,对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容,就可以得到Request-URI所标识的资源的信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。


响应篇

在接收和解释请求消息后,服务器返回一个HTTP响应消息。

HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文,状态行格式如下:

常见状态代码、状态描述、说明:

HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。

HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。
每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的。

报头篇

1、普通报头

在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息。

请求报头

请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。
常用的请求报头

Host:www.guet.edu.cn

此处使用缺省端口号80,若指定了端口号,则变成:

Host:www.guet.edu.cn:指定端口号User-Agent

响应报头

我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名称和版本,你所使用的浏览器的名称和版本,这往往让很多人感到很神奇,实际上,服务器应用程序就是从User-Agent这个请求报头域中获取到这些信息。User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。不过,这个报头域不是必需的,如果我们自己编写一个浏览器,不使用User-Agent请求报头域,那么服务器端就无法得知我们的信息了。

响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。

常用的响应报头

HTTP协议和HTTPS协议的比较

简单的说 HTTPS比HTTP更加的安全

HTTP是超文本传送协议,信息是明文传输,
HTTPS则是有安全性的SSL加密传送协议。