其他分享
首页 > 其他分享> > goweb-http协议

goweb-http协议

作者:互联网

先链接到一个我的另一篇有关HTTP的博客
第一次访问时会有些慢~~~

http协议

因为编写 Web 应用必须对 HTTP 有所了解,所以我们对 HTTP 进行介绍

HTTP 协议简介

HTTP 超文本传输协议 (HTTP-Hypertext transfer protocol),是一个属于应用层的
面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于 1990
年提出,经过几年的使用与发展,得到不断地完善和扩展。它是一种详细规定了浏览器
和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
客户端与服务端通信时传输的内容我们称之为报文
HTTP 就是一个通信规则,这个规则规定了客户端发送给服务器的报文格式,也规
定了服务器发送给客户端的报文格式。实际我们要学习的就是这两种报文。客户端发送
给服务器的称为”请求报文“,服务器发送给客户端的称为”响应报文“。

HTTP 协议的发展历程

超文本传输协议的前身是世外桃源(Xanadu)项目,超文本的概念是泰德˙纳尔森(Ted
Nelson)在 1960 年代提出的。进入哈佛大学后,纳尔森一直致力于超文本协议和该项目
的研究,但他从未公开发表过资料。1989 年,蒂姆˙伯纳斯˙李(Tim Berners Lee)在 CERN(欧
洲原子核研究委员会 = European Organization for Nuclear Research)担任软件咨询师
的时候,开发了一套程序,奠定了万维网(WWW = World Wide Web)的基础。1990 年
12 月,超文本在 CERN 首次上线。1991 年夏天,继 Telnet 等协议之后,超文本转移协
议成为互联网诸多协议的一分子。
当时,Telnet 协议解决了一台计算机和另外一台计算机之间一对一的控制型通信的
要求。邮件协议解决了一个发件人向少量人员发送信息的通信要求。文件传输协议解决
一台计算机从另外一台计算机批量获取文件的通信要求,但是它不具备一边获取文件一
边显示文件或对文件进行某种处理的功能。新闻传输协议解决了一对多新闻广播的通信
要求。而超文本要解决的通信要求是:在一台计算机上获取并显示存放在多台计算机里
的文本、数据、图片和其他类型的文件;它包含两大部分:超文本转移协议和超文本标
记语言(HTML)。HTTP、HTML 以及浏览器的诞生给互联网的普及带来了飞跃。

HTTP 协议的会话方式

浏览器与服务器之间的通信过程要经历四个步骤:建->发 ->回 ->关

浏览器与 WEB 服务器的连接过程是短暂的,每次连接只处理一个请求和响应。对每一
个页面的访问,浏览器与 WEB 服务器都要建立一次单独的连接。

浏览器到 WEB 服务器之间的所有通讯都是完全独立分开的请求和响应对。

## HTTP1.0 和 HTTP1.1 的区别

在 HTTP1.0 版本中,浏览器请求一个带有图片的网页,会由于下载图片而与服务器
之间开启一个新的连接;但在 HTTP1.1 版本中,允许浏览器在拿到当前请求对应的全部
资源后再断开连接,提高了效率HTTP 1.1 是目前使用最为广泛的一个版本,而最新的一个版本则是 HTTP 2.0,又
称 HTTP/2。在开放互联网上 HTTP 2.0 将只用于 https://网址。HTTPS,即 SSL(Secure
Socket Layer,安全套接字层)之上的 HTTP,实际上就是在 SSL/TLS 连接的上层进行 HTTP
通信。
备注:SSL 最初由 Netscape 公司开发,之后由 IETF(Internet Engineering Task Force,
互联网工程任务组)接手并将其改名为 TLS(Transport Layer Security,传输层安全协
议)

请求报文

GET /Hello/index.jsp HTTP/1.1
Accept: */*
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64;
Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;
Media Center PC 6.0; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Host: localhost:8080
Connection: Keep-Alive
Cookie: JSESSIONID=C55836CDA892D9124C03CF8FE8311B15

Get 请求没有请求体,Post 请求才有请求体

GET /Hello/index.jsp HTTP/1.1 : GET 请 求 , 请 求 服 务 器 路 径 为
Hello/index.jsp,协议为 1.1;

信息。有些网站会显示用户的系统版本和浏览器版本信息,这都是通过获取 User-
Agent 头信息而来的;

选项中找到语言相关信息;

POST /Hello/target.html HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml,
image/gif, image/pjpeg, application/x-ms-xbap, */*
Referer: http://localhost:8080/Hello/
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64;
Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;
Media Center PC 6.0; .NET4.0C; .NET4.0E)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 14
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: JSESSIONID=774DA38C1B78AE288610D77621590345

Referer: http://localhost:8080/hello/index.jsp:请求来自哪个页面,例如你在百
度上点击链接到了这里,那么 Referer:http://www.baidu.com;如果你是在浏览器的地
址栏中直接输入的地址,那么就没有 Referer 这个请求头了;

响应报文

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Content-Length: 274
Date: Tue, 07 Apr 2015 10:08:26 GMT
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Hello</h1>
</body>
</html>

响应状态码

标签:协议,HTTP,请求,http,goweb,响应,服务器,浏览器,客户端
来源: https://www.cnblogs.com/ygjzs/p/12046155.html