HTTP协议

来源:互联网 发布:福州广电网络电视电话 编辑:程序博客网 时间:2024/06/07 13:55

HTTP协议简介

当客户端与web服务器交互,就存在web请求。这种请求都是基于统一的应用层协议HTTP交互数据。

HTTP协议解析

HTTP超文本传输协议,详细规定了浏览器和万维网服务器之间相互通信的规则,是万维网交互信息的交出,它允许将HTTP文档从WEB服务器传送到WEB浏览器。


如何发一个请求呢?
1、当在浏览器中输入一个URL时,按回车键后这个HTTP请求就发起了,之后就会返回这个请求的结果。


URL(统一资源定位符)也被称为网页地址。
URL的标准格式: 协议://服务器IP/路径/文件名。

请求略图:
请求略图


2、不用浏览器请求,借助很多工具发起HTTP请求,如Linux系统的curl命令。
windows中也可用curl.exe工具发起请求,
这里写图片描述
这里写图片描述

也可以查看访问URL后服务器返回的HTTP响应头,加上-I选项即可,

这里写图片描述

3、用telnet进行模拟访问HTTP请求访问。

第一步:打开cmd,输入telnet www.baidu.com 80 回车键(此时为黑屏状态),然后利用快捷键“Ctrl+]”打开telnet回显(telnet默认不回显),如下图:
这里写图片描述

第二步:键入回车键进入编辑状态:
这里写图片描述

第三步:输入GET /index.html HTTP/1.1,键入回车,接着输入Host:www.baidu.com 接着连续键入两次回车。(两次回车代表提交请求)输入速度一定要快,否则将会连接失败。或者将代码写入记事本,用时直接cope即可,如下图:

不知道为什么win10请求不了,

注意可以通过telnet 探测别人的端口,telnet是通过三次握手,非常靠谱。

HTTP歇息详解

最重要的是HTTP协议中的HTTP header,HTTP header能明确告诉我们请求结果。
HTTP请求分析:


Request请求信息:

GET /index.php HTTP/1.1
Host: www.2cto.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive



HTTP请求方法 详细解释 GET 请求获取由Request-URI所标识的资源。 POST 请求获取由Request-URI所标识的资源的响应消息报头。 HEAD 请求获取由Request-URI所标识的资源的响应消息报头。 OPTIONS 请求查询服务器的性能,或查询与资源相关的选项和需求。 PUT 请求服务器存储一个资源,并用Request-URI作为其标识。 DELETE 请求服务器删除由Request-URI所标识的资源。 TRACE 请求服务器回送收到的请求信息,主要用语测试或诊断。
常见请求头 解释 User-Agent 客户端将它的操作系统、浏览器和其它属性告诉服务器 Host 指定被请求资源的主机地址和端口号,如Host: www.2cto.com Connection 当前连接是否保持,如Connection: Keep-Alive Accept-Language 指定一种自然语言,如Accept-Language: zh-cn Accept 浏览器可接受的MIME类型

HTTP响应:

HTTP/1.1 200 OK
Date: Thu, 28 Feb 2013 07:36:47 GMT
Server: BWS/1.0
Content-Length: 4199
Content-Type: text/html;charset=utf-8
Cache-Control: private
Expires: Thu, 28 Feb 2013 07:36:47 GMT
Content-Encoding: gzip
Set-Cookie: H_PS_PSSID=2022_1438_1944_1788; path=/; domain=.2cto.com
Connection: Keep-Alive



常见HTTP状态码 解释 200 客户端请求成功 302 临时跳转,跳转的地址通过location指定 400 客户端请求语法错误,服务器无法识别 401 请求未经授权 403 服务器收到请求,但是拒绝提供服务 404 请求资源不存在 500 服务器内部错误
常见HTTP响应头 解释 Server WEB服务器名称,,如Server:Apache/1.3.6(Unix) Content-Type 用来指明发送给接受者的实体正文的媒体类型 Content-Length 指明实体正文长度 Keep-Alive 保持连接时间 Date 网站最后一次改变的格林时间
0 0