HTTP总结

来源:互联网 发布:cd.java.tedu.cn v 编辑:程序博客网 时间:2024/05/22 19:13

关于HTTP协议感觉总是学了又忘,所以特别写一篇博客来增加印象.

一、HTTP协议概述

首先来说一下HTTP协议是什么:
Http协议(超文本传输协议,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

当然上面的话太官方令人难以理解,简单来说,浏览器访问某个网站,就会发送一个request请求,然后web服务器收到请求后会生成相应的response然后返回给浏览器,而它们之间通讯的数据要遵循一定的规范,比如说什么消息头响应头状态码什么的,这种规范就是http请求。

二、HTTP结构剖析

1.HTTP请求信息

GET www.sohu.com HTTP/1.1 –>请求头,包含了请求方式,url和http协议版本
Accept: text/html, application/xhtml+xml, image/jxr, / –>请求的资源类型
Accept-Encoding: gzip, deflate –>编码方式
Accept-Language: en-us ,zh-cn –>地区语言
Connection: Keep-Alive –>保持连接状态,以节省资源
Host: www.sohu.com –>请求的主机地址
User-Agent: Mozilla/5.0 –>用户信息,显示用户浏览器内核,操作系统等信息

2.HTTP响应消息

HTTP/1.1 200 OK
Cache-Control:no-cache, no-store, must-revalidate –>控制缓存的信息
Content-Length:2410 –>内容长度
Content-Type: text/html –>内容的类型
Date:Sat, 02 Apr 2016 09:57:22 GMT –>响应时间
Server:apache –>Web服务器类型

3.常见的响应状态码

200: 表示一切正常,返回的是正常请求结果
206: (部分内容) 客户发送了一个带Rang头(要求服务器只返回资源/文档中的部分内容)的GET请求,服务器按要求完成了这个请求
302/307(临时重定向): 指出被请求的文档已经被临时移到别处,此文档的新URL在LOCATION响应头中给出.
304: (未修改)表示客户机缓存的版本是最新的,客户应该继续使用它
401:(未授权) 表示客户机访问的是一个受口令和密码保护的页面,结合使用一个WWW - Authenticate 响应头提示客户机应重新发出一个带 Authorization头的请求消息
404: (找不到资源) 服务器上不存在客户机请求的资源
500: (内部服务器错误) 服务器端的 CGI,ASP,JSP等程序发生错误.

4.GET请求和POST请求有何区别?

get会把提交的信息显示在地址栏上,post不会
get对于敏感信息不安全 post安全
get 提交数据体积受地址栏的限制, 一般在1KB以下. post没有,可以提交大体积数据
get将提交信息封装在请求行,也就是http消息头之前. post 数据体中,也就是http消息头之后的空行后

0 0