HTTP请求响应过程 与HTTPS区别(2)

GET/test.jsp HTTP/1.1
Accept:image/test.image/jpeg,*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:222.35.232.103
User-Agent:Mozila/5.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate
username=linuxidc&password=linuxidc

1)请求方法URI协议/版本

请求的第一行是方法/内容 URL协议/协议版本名称”

GET/test.jsp HTTP/1.1

上面的代码中,“GET”说明请求方法,“/test.jsp”表示网络资源,中间空格,最后说明协议和协议的版本。

根据HTTP标准,HTTP请求可以使用多种不同的请求方法。例如:HTTP1.1允许支持七种请求方法(也叫动作):GETPOSTHEADOPTIONSPUTDELETETARCE日常开发中, GETPOST是最常用的方法,主要在相关的Web开发中

URL路径指定了要访问的网络资源。一般来说,我们需要的是相对路径,因为确定资源位置,知道网络资源相对于服务器的根目录的路径就可以,所以以“/”开头。在头信息结束时,声明了通信过程中HTTP协议版本的使用版本。

需要注意,方法名称很重要的一点是严格区分大小写。有些时候,某个请求所针对的资源可能不支持对应的请求方法,会通过不同的状态码给出响应。例如,服务器将返回一个状态码405(方法不允许),当请求服务器或方法不理解不支持相应的时间,返回一个状态码501(没有实现)

2)请求头(Request Header)

请求头包含了一些客户环境和请求的内容信息。例如,请求头可以声明浏览器内核和语言使用,请求的长度等

Accept:image/test.image/jpeg.*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:222.35.232.103
User-Agent:Mozila/5.0(compatible:MSIE5.01:Windows NT5.0)
Accept-Encoding:gzip,deflate.

3)请求正文

请求正文和请求头要有空行。这个空行必须存在,说明结束请求头传输,开始传输正文请求。请求正文中一般包含很多信息,例如用户提交的用户名和密码之类的登陆信息:userlogin=linuxidc&currentpwd=linuxidc

在真实应用中,协议的请求正文可以包含大量的信息,而不是如示例HTTP

求中一样,请求正文只有简单的一行数据。

HTTP协议的响应报文

和请求报文类似,HTTP响应主要也是3个部分构成:

(1)协议状态版本代码描述

(2)响应头(Response Header)

(3)响应正文

下面是一个HTTP响应的示例:

HTTP/1.1 200 OK
Server:Apache Tomcat/7.0.1
Date:Mon,6Oct2014 13:23:42 GMT
Content-Length:102
<html>
<head>
<title>HTTP响应文件<title>
</head>
<body>
这是HTTP响应文件!
</body>
</html>

客户端向服务器发送请求,和请求报文类似,服务器会以状态行响应。

响应报文包括:HTTP协议的版本、结果编码以及其他的必要信息,如实体信息等。响应类别不同,响应报文里可以包含或者不含实体内容。

HTTP响应报文的首先是以状态行开始,这些可以参考示例的代码。

响应头也就是报文首部,和请求头首部一样,包含重要的信息,例子中我们可以看到,比如日期时间和服务器类型以及内容长度和数量等。

HTTPS协议的区别

Https是一种基于SSL/TLS的Http协议,所有的http数据都是在SSL/TLS协议封装之上传输的。

Https协议在Http协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议。

——>HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16105.html