1.课程内容概要
主要知识点1:BP使用方法
主要知识点2:Yakit使用方法
主要知识点3:HTTP协议
2.重点知识与细节
HTTP简介
http是一个基于请求与响应模式的,无状态的,应用层协议,常基于TCP连接,绝大多数web开发都是使用HTTP协议
1.支持客户/服务器模式,基于请求与响应。
2.无连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间
3.无状态:指协议对事物处理没有记忆能力,缺少状态一位着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大,
在服务器不需要先前的信息时,它的应答比较快
HTTP-URL
URL,统一资源定位符
是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示。是互联网网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息
指出文件的位置以及浏览器应该怎么处理它。
常见的基本URL语法:
协议://服务器 IP(:端口)/路径/文件(?查询)
例如:http://www.xxx.com/aa.php?id=bb
作业
一 , 什么是url
url是统一的资源定位符
二, 常见的基本url语法是什么
//服务器IP(:端口)/路径/文件(?查询)
三 ,GET请求和POST请求的区别在哪
1、数据传输方式不同
get方法的请求数据被包含在URL中,数据在网络上以明文的形式传输,数据量小。而post方法的请求数据放在请求体中,可以传输大量数据。
2、数据量大小不同
get方法传输的数据量较小,因为浏览器对URL的长度有限制。而post方法理论上没有限制,可以传输大量数据。
3、安全性不同
由于get方法的数据在URL中可见,安全性相对较低,不适合传输敏感信息。而post方法的数据在请求体中,相对更为安全。
4、幂等性不同
get方法是幂等的,也就是说多次请求同一个URL,服务器的状态不会改变。而post方法不是幂等的,每次请求可能会得到不同的结果。
5、缓存处理不同
get方法的请求可以被浏览器缓存,而post方法的请求一般不会被缓存。
四、常见的响应码有哪些?说明它们的含义。 1xx (Informational) 信息性状态码,表示正在处理。
100:用户端应继续发送请求
101:切换协议
2xx (Success) 成功状态码,表示请求正常。
200:成功响应
201:请求已实现并且创建了新资源。
202:已接受请求,但尚未处理。
204:成功响应,但是这个响应不包含响应体,这个响应不应该引起浏览器视图变化。
205:成功响应,但是这个响应不包含响应体,并且这个响应要求引起浏览器视图变化。
3xx (Redirection) 重定向状态码,表示客户端需要进行附加操作。
301:永久重定向,目标网站已经永久转移到其他网址,浏览器将会缓存响应的URL。
302:临时重定向,目标网站暂时转移到其他网址,浏览器不会缓存响应的URL。
304: 使用的是缓存的数据
305: 使用代理,当前服务器并不负责返回响应,它只是转发请求的,让别的服务器去返回响应,然后它在转回数据
4xx (Client Error) 客户端错误状态码,表示服务器无法处理请求。
400:请求包含语法错误
401:当前请求需要进行用户验证
403:服务端成功接收请求,但拒绝执行。
404:用户端请求资源未找到
5xx (Server Error) 服务器错误状态码,表示服务器处理请求出错。
500:后台处理出错
502:网关接收到无效响应
503:暂时无法提供服务
504:网关长时间未接收到响应
五、详细说明下列请求和响应数据包中每个字段的含义
HTTP常见的请求头
POST 发出请求
Host (发送请求时, 该头域是必需的) 主要用于指定被请求资源的Internet主机和端口号, 它通常从HTTP URL中提取出来的。 HTTP/1.1请求必须包含主机头域, 否则系统会以400状态码返回。
例如: 我们在浏览器中输入: http://www.guet.edu.cn/index.html, 浏览器发送的请求消息中, 就会包含Host请求头域: Host: http://www.guet.edu.cn, 此处使用缺省端口号80, 若指定了端口号, 则变成: Host: 指定端口号。Cookie: 最重要的请求头之一, 将cookie的值发送给HTTP服务器。
User-Agent 告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本 Accept: 浏览器端可以接受的MIME类型。 例如: Accept: text/html 代表浏览器可以接受服务器回发的类型为text/html 也就是我们常说的html文档, 如果服务器无法返回text/html类型的数据, 服务器应该返回一个406错误(non acceptable)。 通配符 * 代表任意类型, 例如 Accept: */* 代表浏览器可以处理所有类型, (一般浏览器发给服务器都是发这个)。
Accept-Language: 浏览器申明自己接收的语言。 语言跟字符集的区别: 中文是语言, 中文有多种字符集, 比如big5, gb2312, gbk等等; 例如: Accept-Language: en-us。 如果请求消息中没有设置这个报头域, 服务器假定客户端对各种语言都可以接受。
Accept-Encoding: 浏览器申明自己可接收的编码方法, 通常指定压缩方法, 是否支持压缩, 支持什么压缩方法(gzip, deflate) ;Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。 许多情形下这可以减少5到10倍的下载时间。 例如: Accept-Encoding: gzip, deflate。 如果请求消息中没有设置这个域, 服务器假定客户端对各种内容编码都可以接受。
DNT :属于 HTTP 请求首部,其中 DNT 是 Do Not Track 的简称,意为拒绝个人信息被收集,是表示拒绝被精准广告追踪的一种方法
Referer: 包含一个URL, 用户从该URL代表的页面出发访问当前请求的页面。 提供了Request的上下文信息的服务器, 告诉服务器我是从哪个链接过来的, 比如从我主页上链接到一个朋友那里, 他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。
例如: Referer:http://translate.google.cn/?hl=zh-cn&tab=wT
Connection:
例如: Connection: keep-alive 当一个网页打开完成后, 客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭, 如果客户端再次访问这个服务器上的网页, 会继续使用这一条已经建立的连接。 HTTP 1.1默认进行持久连接。 利用持久连接的优点, 当页面包含多个元素时(例如Applet, 图片) , 显著地减少下载所需要的时间。 要实现这一
点, Servlet需要在应答中发送一个Content-Length头, 最简单的实现方法是: 先把内容写入ByteArrayOutputStream, 然后在正式写出内容之前计算它的大小。
Connection: close 代表一个Request完成后, 客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request, 需要重新建立TCP连接。
Content-Type :是HTTP请求头中的⼀个标头,⽤于指示请求或响应中包含的实体的媒体类型,可以出现在请求或响应标头中。它告诉服务器如何处理客户端传过来的数据(通知服务器客户端正在发送的数据类型)、客户端如何处理响应中的数据。get 请求的 headers 中是没有 content-type 这个字段的。content-type 是⽤来指定消息体的格式的,get 请求⼀般没有消息体,所以,get 请求⼀般不⽤设置 content-type。
Content-Length: 表示请求消息正文的长度。 例如: Content-Length: 38。
HTTP常见的响应头
Date: 表示消息发送的时间, 时间的描述格式由rfc822定义。 例如, Date:Mon,31Dec200104:25:57GMT。 Date描述的时间表示世界标准时, 换算成本地时间, 需要知道用户所在的时区。 你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦
Server: 指明HTTP服务器用来处理请求的软件信息。 例如: Server: Microsoft-IIS/7.5、 Server: ApacheCoyote/1.1。 此域能包含多个产品标识和注释, 产品标识一般按照重要性排序
X-Powered-By: 表示网站是用什么技术开发的。
例如: X-Powered-By: ASP.
Product:产品名称
|