HTTP协议

HTTP协议
HTTP是HyperText Transfer Protocol(超文本传输协议)的简写,传输HTML文件。
用于定义WEB浏览器与WEB服务器之间交换数据的过程数据本身的格式

以访问www.baidu.com为例
一、请求部分


1.1、请求消息行
GET  /day08_02/1.html  HTTP/1.1
请求方式:Get(默认)  POST  DELETE  HEAD等
GET:明文传输 不安全,数据量有限,不超过1kb
GET /day08_02/1.html?uName=tom&pwd=123 HTTP/1.1
POST: 暗文传输,安全。数据量没有限制。
URI:统一资源标识符。去协议和IP地址。

1.2、请求消息头:客户端浏览器告诉服务器一些信息
Accept:浏览器可接受的MIME类型。告诉服务器客户端能接收什么样类型的文件。
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Charset:浏览器告诉服务器它支持哪种字符集
//Accept-Charset
Accept-Encoding:浏览器能够进行解码的数据编码格式
Accept-Encoding: gzip, deflate, br
Accept-Language:浏览器所希望的语言种类。当服务器提供一种以上的语言版本的时候会用到
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: no-cache
Connection:表示是否需要持久链接。为keep-alive或HTTP1.1默认进行持久连接
Connection: keep-alive
Content-length:表示请求消息正文的长度
//Content-Length:17
Content-Type:内容类型。告诉服务器浏览器传输数据的MIME类型,文件传输的类型
//Content-Type:application/x-www-form-urlencoded
Cookie:这是重要的请求头信息(在会话的时候进行解析)
Cookie: BAIDUID=793906BB16C965442EADAC2737F981D2:FG=1;
PSTM=1534957926; BD_UPN=12314753; BIDUPSID=44CEC76791B8D7FCCEEDE315CDF3808C;
delPer=0; BD_HOME=0; H_PS_PSSID=; BD_CK_SAM=1;
PSINO=7; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDSVRTM=0
初始化URL中的主机和端口
Host: www.baidu.com  (localhost:8080)
Pragma: no-cache
Upgrade-Insecure-Requests: 1
User-Agen:浏览器的类型
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
  AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
告诉服务器,我(当前请求)从哪里来?
Referer:http://localhost/login.html
作用:防盗链、统计工作

Date:请求的时间  GMT
//Date:Date: Mon, 22 Aug 2018 01:55:39   

1.3、请求空行:
  空行,就是用于分割POST请求的请求头,和请求体的。

1.4、请求体:
  当请求的方式是POST的时候才能看到中文(封装POST请求消息的请求参数)。
  GET方式时是在URL地址上
uname=tom&pwd=123

二、响应部分

2.1、响应消息行
协议/版本   响应状态码  对响应码的描述(一切正常)
HTTP/1.1   200   OK

2.2、响应消息头
服务器发送过来的数据采用的编码格式
Content-Encoding: gzip
告诉浏览器正文的长度
Content-length:80
服务器发送的文本的语言
Content-Language:zh-cn
服务器发送的内容的MIME类型。以及字符集
Content-Type: text/html (Content-Type: text/html;charset=UTF-8)
Cxy_all: baidu+b66f84a5fd08b9e0971244ca02931cc7
Date: Sat, 13 Oct 2018 08:28:53 GMT
Expires: Sat, 13 Oct 2018 08:28:27 GMT
指示客户端刷新的频率,单位是秒
Refresh: 1;url=http://www.baidu.com
指示服务器的类型。服务器名字。Servlet一般不设置这个值,而是由Web服务器自己设置。
Server: BWS/1.1  (apache tomcat)
服务端发送来的Set-Cookie
Set-Cookie: delPer=0; path=/; domain=.baidu.com
Set-Cookie: BDSVRTM=0; path=/Set-Cookie: BD_HOME=0; path=/
Set-Cookie: H_PS_PSSID=1440_21100_26350_20928; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Ua-Compatible: IE=Edge,chrome=1
Date:响应的时间  GMT
//Date:Date: Mon, 22 Aug 2018 01:55:39
指定新的资源的位置,通常和302/307一起使用,完成请求重定向。
//Location: http://www.it315.org/index.jsp
Expires: -1
Cache-Control: no-cache (1.1)
Pragma: no-cache   (1.0)  表示告诉客户端不要使用缓存
内容安排,消息头指示回复的内容该以何种形式进行展示。是以内联(即网页或者页面的一部分,还是以附件的形式下载并保存到本地。
Content-Disposition: inline(默认值,在当前页面内打开) | attachment | attachment; filename="filename.jpg"(以附件形式打开响应体。文件下载)

2.3、响应空行

2.4、响应体:
  传输的数据。即源码和资源文件(和网页右键”查看源码”看到的内容一样)。
响应字符串格式

Connection: keep-alive
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 101
Date: Wed, 06 Jun 2018 07:08:42 GMT

<html>
  <head>
    <title>$Title$</title>
  </head>
    <body>
      hello , response
   </body>
</html>
View Code

 

posted @ 2018-11-30 16:35  payn  阅读(252)  评论(0)    收藏  举报