编程学习-HTTP-超文本传输协议
2018-03-24 11:33
387 查看
2018.03.24************************Day–[b]***********************[/b]
author:wills
web服务器:Apache IIS(Internet Information Service)
Web服务器收到请求后,向客户端发送响应消息
http是无连接:它限制每次连接只处理一个请求。服务器处理完请求,即断开连接,节约传输时间
http媒体独立:只要client和server知道如何处理data,那么任何类型的data都可以通过http发送。client和server指定使用合适的MIME-type内容类型
http是无状态协议:该协议对事务没有记忆能力。缺少状态那么如果处理后面的信息需要用到前面的信息就需要重新发送,导致每次传送的数据量变大。但是,如果服务器不需要前面信息时,它的反应就比较快。
下图(来源于网络)表示了http协议通信流程:
runoob
http1.1新增五种请求方法:OPRIONS,PUT,DELETE,TRACE,CONNECT
http状态码英文是HTTP Status Code
常见状态码:
200 - 请求成功
301 - 资源(网页)被永久转移到其他URL
404 - 请求的资源(网页)不存在
500 - 内部服务器错误
.
.
.
状态码列表内容太多,我就不一一列出,想看可以点击我刚才给的链接里面有详细内容
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,HEADhttp1.1新增五种请求方法:OPRIONS,PUT,DELETE,TRACE,CONNECT
序号 | 方法 | 描述 |
---|---|---|
1 | GET | 请求指定页面信息,并返回实体主体 |
2 | HEAD | 与GET类似,只是返回响应没有具体内容,用于获取报头 |
3 | POST | 向指定资源提交数据进行处理请求。数据包含在请求体中,POST请求可能导致新的资源建立或已有资源修改 |
4 | PUT | 从client向server传送的数据取代指定文档的内容 |
5 | DELETE | 请求server删除指定页面 |
6 | CONNECT | http1.1协议中预留给能够将连接管道方式的代理服务器。 |
7 | OPTIONS | 允许客户端查看服务器性能 |
8 | TRACE | 回显服务器收到的请求,主要用于测试和诊断。 |
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状态码列表
状态码 | 状态码英文名 | 中文描述 |
---|---|---|
100 | Continue | 继续,客户端应继续执行请求 |
101 | Switching Protocols | 切换协议,只能切到更高级的协议 |
200 | OK | 请求成功。一般用于GET与POST请求 |
201 | Created | 已创建。成功并创建了新的资源 |
202 | Accepted | 已接收请求,但尚未处理完成 |
.
.
状态码列表内容太多,我就不一一列出,想看可以点击我刚才给的链接里面有详细内容
HTTP content-type
Content-Type,内容类型,一般指网页中存在的Content-Type,用于定义网络文件的类型好网页的编码,决定浏览器以什么形式,什么编码读取这个文件,这就是一些Asp网页点击的结果却是下载一张图片或者一个文件的原因HTTP content-type 对照表
相关文章推荐
- HTTP(Hyper Text Transfer Protocol 超文本传输协议)学习笔记
- ASP.NET 3.5核心编程学习笔记(45):HTTP处理程序之高级编程
- ASP.NET 3.5核心编程学习笔记(46):HTTP模块的编写
- 学习编程一切资源http://www.tutorialspoint.com/
- ASP.NET 3.5核心编程学习笔记(32):HttpApplicationState
- 第二十一天学习javahttp编程
- 【Android进阶学习】Http编程之HttpConnection
- 学习编程 - 有哪些适合新手练手的Java Web项目?(分享自知乎网)http://zhuanlan.zhihu.com/p/22112669
- 【Android进阶学习】Http编程之HttpClient
- ASP.NET 3.5核心编程学习笔记(42):HTTP处理程序的编写之建立数据报表
- Nginx学习——http配置项解析编程
- 《老罗Android》学习之 HTTP编程(一)
- [DOS]DOS功能调用06H 执行控制台I/O_编程学习_百度空间 http://hi.baidu.com/asmfan/item/4278a2eb1935091965db009f
- Java学习之网络编程--模拟HTTP
- HTTP学习与Web服务器编程
- JAVA基础学习之Http(含JSON)网络编程
- VC学习笔记之‘HTTP编程’(一)
- 一个学习编程技术的好网站-http://www.tutorialspoint.com/index.htm
- ASP.NET 3.5核心编程学习笔记(44):HTTP处理程序的编写之从数据库加载图像
- 【Android进阶学习】Http编程之HttpClient