您的位置:首页 > 理论基础 > 计算机网络

编程学习-HTTP-超文本传输协议

2018-03-24 11:33 387 查看
2018.03.24************************Day–[b]***********************[/b]

author:wills

HTTP:协议是Hyper Text Transfer Protocol超文本传输协调的缩写。它是用于从万维网(www:world wide web)服务器传输超文本到本地浏览器的协议,它基于TCP/IP协议传递数据

工作原理:

http协议工作于client-server架构上。浏览器作为http的client通过URL向http服务端WEB服务器发送所有请求

web服务器:Apache IIS(Internet Information Service)

Web服务器收到请求后,向客户端发送响应消息

http默认端口80,当然你也可修改(之后的一切问题自己解决)

注意事项:

http是无连接:它限制每次连接只处理一个请求。服务器处理完请求,即断开连接,节约传输时间

http媒体独立:只要client和server知道如何处理data,那么任何类型的data都可以通过http发送。client和server指定使用合适的MIME-type内容类型

http是无状态协议:该协议对事务没有记忆能力。缺少状态那么如果处理后面的信息需要用到前面的信息就需要重新发送,导致每次传送的数据量变大。但是,如果服务器不需要前面信息时,它的反应就比较快。

下图(来源于网络)表示了http协议通信流程:

runoob


消息架构

http使用同一资源定位符URI(Uniform Resource Identifiers)来传输数据和建立连接

客户端请求消息

客户端发送一个http请求到服务器的请求消息格式如下包括:请求行(request line),请求头部(header),空行,请求数据四部分



服务器响应消息

响应消息也是四部分状态行,消息报头,空行,响应正文



http请求方法

http1.0定义三种请求方法:GET,POST,HEAD

http1.1新增五种请求方法:OPRIONS,PUT,DELETE,TRACE,CONNECT

序号方法描述
1GET请求指定页面信息,并返回实体主体
2HEAD与GET类似,只是返回响应没有具体内容,用于获取报头
3POST向指定资源提交数据进行处理请求。数据包含在请求体中,POST请求可能导致新的资源建立或已有资源修改
4PUT从client向server传送的数据取代指定文档的内容
5DELETE请求server删除指定页面
6CONNECThttp1.1协议中预留给能够将连接管道方式的代理服务器。
7OPTIONS允许客户端查看服务器性能
8TRACE回显服务器收到的请求,主要用于测试和诊断。

http响应头消息

应答头说明
Allow服务器支持哪些请求方法(例如:GET,POST等)
Content-Encoding文档的编码(encoding)方法。只有解码后才能得到Content-Type头指定的类型。
Content-Length表示内容长度,只有当浏览器使用持久http连接才需要这个数据
Content-Type表示后面的文档属于什么MIME类型。servlet默认为text/plain,但通常需要显示的指定为text/html。由于经常设置Content-Type,顾HttpServletResponse提供了一个专用方法setContentType()。
Date当前的GMT时间。可以使用setDateHeader设置这个头,以避免转换时间格式的麻烦
Expires应该在什么时候认为文档已过期,不在缓存
Last-Modified文档最后改动时间。
Location表示客户应该到哪里提取文档
Refresh表示浏览器应该在多少时间之后刷新文档,以秒计。Refresh头不属于http1.1正式规范的一部份,而是一个扩展,但是Netscape和IE都支持
Server服务器名字。Servlet一般不设置这个值,由Web服务器自己设置
Set-Cookie设置和页面关联的Cookie
WWW-Authenticate客户应该在Authenticationn头中提供什么类型的授权信息?

http状态码

浏览器—请求—服务器—返回—-http状态码信息头

http状态码英文是HTTP Status Code

常见状态码:

200 - 请求成功

301 - 资源(网页)被永久转移到其他URL

404 - 请求的资源(网页)不存在

500 - 内部服务器错误

http状态码分类

http状态码由三个十进制数在组成,第一个十进制数定义状态码类型,好两个数字没有分类作用。http状态码共五种:

分类分类描述
1**信息,服务收到请求,需要请求者继续执行操作
2**成功,操作备餐柜接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器处理请求过程中出现错误

HTTP状态码列表

状态码状态码英文名中文描述
100Continue继续,客户端应继续执行请求
101Switching Protocols切换协议,只能切到更高级的协议
200OK请求成功。一般用于GET与POST请求
201Created已创建。成功并创建了新的资源
202Accepted已接收请求,但尚未处理完成
.

.

.

状态码列表内容太多,我就不一一列出,想看可以点击我刚才给的链接里面有详细内容

HTTP content-type

Content-Type,内容类型,一般指网页中存在的Content-Type,用于定义网络文件的类型好网页的编码,决定浏览器以什么形式,什么编码读取这个文件,这就是一些Asp网页点击的结果却是下载一张图片或者一个文件的原因

HTTP content-type 对照表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HTTP协议 学习http