首页 > Web开发 > 详细

计算机网络 HTTP协议

时间:2019-12-09 20:32:11      阅读:124      评论:0      收藏:0      [点我收藏+]

HTTP协议(Hypertext transfer protocol超文本传输协议

预备知识:

1、HTTP协议是应用层协议,定义的是传输数据的内容的规范。HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答标准。通过使用网页浏览器、网络爬虫或者其他工具,客户端发起一个HTTP请到服务器上的指定端口(默认80)。服务器上存储着一些资源,如HTML文件和图像等。

2、HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

3、HTTP默认的端口号为80,HTTPS的端口号为443。

4、HTTP协议是一种详细规定浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议

5、URL(Uniform Resource Locator-统一资源定位符),URL是万维网(WWW上的每一信息资源对应的统一的且在网上唯一地址URL4部分组成:协议、主机、端口(省略时使用方案的默认端口)、路径。URL格式:protocol :// hostname[:port] / path / [;parameters][?query]#fragment

6、URL中#号(井号)的作用是页面定位符。因为#是用来指导浏览器动作的,对服务器端完全无用,所以HTTP请求不包括#。URL&号不同参数间隔符URL?号连接作用和清除缓存作用

7、php和html

8、MIME(Multipurpose Internet Mail Extensions-多用途互联网邮件扩展类型)信息:MIME在 RFC 822(RFC 822所制定的标准,电子邮件一般只用来传递基本的ASCII码文本信息)的基础上对电子邮件规范做了大量的扩展,引入了新的格式规范和编码方式。在MIME的支持下,图像、声音、动画等二进制文件都可方便的通过电子邮件来进行传递,极大地丰富了电子邮件的功能,弥补了原来信息格式的不足。MIME消息消息头和消息体两大部分组成。

实现过程:  

1、客户端和服务器建立TCP连接。

2、客户端向服务器发送请求报文,请求报文包含请求行,请求头部,空行和请求数据。

3、服务且接收请求报文,根据请求报文的请求行里包含的资源,定位请求资源 ,服务器将该资复写到TCP套接字,由客户端读取。响应包含状态行,响应头部,空行和响应数据。

4、根据connection 模式,如果为close,关闭TCP连接;如果为keepalive,连接会保持一段时间,在该时间内可以继续接收请求。

5、客户端解析响应报文中的状态行->响应头部的信息->处理响应数据并在浏览器窗口显示。

 

实现细节: 

预备知识:HTTP请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POSTHEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

技术分享图片

一、请求信息:请求行请求头部空行请求数据四部分

1、请求行:请求类型(POST)+资源+协议版本号(HTTP1.1);

2、请求头部:服务器要使用的附加信息如:HOST,User-Agent(客户端称为用户代理程序),Accept 指定客户端能够接受的内容格式类型、

Accept-Language指定客户端能够接受的内容格式类型Accept-Encoding指定客户端能够接受的编码类型。

3、空行:请求头部后面的空行是必须的!

4、请求数据:主体,可以添加任意的其他数据

示例1-请求信息

技术分享图片

GET和POST的区别

1、GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.

2、GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.

 

3、GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。

 

4、GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.

 

 

二、响应信息:状态行消息报头空行响应正文四部分

 

状态行:HTTP协议版本号+状态码+状态消息;消息报头:客户端要使用的一些附加信息,如Server(服务器软件名如:Apache/Nginx)、Date,Content-Type:指定了MIME类型的HTML,编码类型是ISO-8859-1、Lsat-Modified等。

空行:消息报头后面的空行是必须的!          ;响应正文:服务器返回给客户端的文本信息

示例2-响应信息

技术分享图片

注:状态码                                                                                                     图-1-状态码及其含义

技术分享图片

 

 

 

计算机网络 HTTP协议

原文:https://www.cnblogs.com/yinminbo/p/11716747.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!