HTTP 学习笔记

1:

浏览器与服务器连接的一般过程:

ServerSocketserverSocket=newServerSocket(80);

serverSocket.accept(80);

www.baidu.com+80(浏览器自动加的)-->DNS(DomainNameService)-->221.179.180.20:80

Socketsocket=newSocket("221.179.180.20",80);

如果服务器使用端口不是80,则需要在连接的时候加上使用端口.

2:

RESET(RepresetationalStateTransfer)

RESTFulWebService

3:

GET|请求获取由Request-URI所标识的资源

POST|在Request-URI所标识的资源后附加新的资源

HEAD|请求获取由Request-URI所标识的资源的响应消息报头

DELETE|请求服务器删除由Request-URI所标识的资源

TRACE|请求服务器会送收到的请求消息,主要用于测试或诊断

CONNECT|保留将来使用

OPTIONS|请求查询服务器的性能,或者查询与资源相关的选项和需求

PUT|请求服务器存储一个资源,并用Request-URI作为其标识

4:

GET方法用于获取由Request-URI所标识的资源的信息,常见形式是:

-GETRequest-URIHTTP/1.1

当我们通过在浏览器的地址栏中直接键入网址的方式去访问网页的时候,浏览器就是GET方法向服务器获取资源

5:

POST方法用于向服务器端发送请求,要求服务器接收负载请求后面的数据.post方法在表单提交的时候用的最多

采用POST方法提交表单的例子

POST/login.jspHTTP/1.1(CRLF)

Accept:image/gif(CRLF)(..)

Host:www.sample.com(CRLF)(..)

...

Cache-Control:no=cache(CRLF)

(CRLF)

username=hello&password=123456

6:

HEAD方法与GET方法几乎是一样的他们的区别在于HEAD方法只是请求消息报头,而不是完整的内容.对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的.利用这个方法,不必传输整个资源的内容,就可以得到Request-URI所标识的资源的信息.这个方法通常用于测试超链接的有效性,是否可以访问,以及最近是否更新等.

7:

HTTP响应-状态代码与状态描述

状态代码由三位数字组成,表示请求是否被理解或满足,状态描述给出了给出了状态代码的简单文本描述

状态的代码的第一个数字定义了响应的类别,后面的两个数字没有具体的分类,第一个数字可能有五种可能的取值

1xx:指示消息-表示请求已接收,继续处理

2xx:成功-表示请求已经被成功接收,理解,接收

3xx:重定向-表示要完成请求必须更进一步的操作

4xx:客户端错误-请求有语法错误或请求无法实现

5xx:服务器端错误-服务器未能实现合法的请求

-----------------------------------------

200|OK客户端请求成功

400|BadRequest由于客户端请求有语法错误,不能被服务器所理解

401|Unauthorized请求未经授权,这个状态代码必须和WWW.Authenticate报头域一起使用

403|Forbidden服务器受到请求,但是拒绝提供服务,服务器通常会在相应正文中给出不提供服务的原因

404|NotFound请求的资源不存在,例如:输入了错误的URL

500|InternalServerError服务器发生不可预期的错误,导致无法完成客户端的请求

503|ServiceUnavailable服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常.

8:

HTTP消息:

HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成.

请求消息和响应消息都是开始行,消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成.

对于请求消息,开始行就是请求行,对于相应消息,开始行就是状态行.

9:

cmd->services.msc->访问本机的服务

cmd->mstsc->远程连接桌面

DOS命令:

作用:启动、停止网络服务

格式:netstartservice

netstopservice

参数:(1)netstart、netstop是启动或停止的行为

(2)service是网络服务名

例:(1)netstarttelnet注释:启动Telnet

(2)netstoptelnet注释:关闭Telnet

10:

使用telnet连接网站:

cmd->telnetwww.sina.com.cn80

粘贴:

GET/index.htmlHTTP/1.1

Host:www.sina.com.cn

此段可选:Connection:close/Keep-Alive

敲2次回车.

访问Tomcat:

telnetlocalhost8080

GET/HTTP/1.1

Host:localhost

Connection:Keep-Alive

---

GET/aa.htmlHTTP/1.1

Host:localhost

Connection:Keep-Alive

其中telnet为命令,www.sina.com.cn为主机80为端口

GET为访问方式/index.html为访问的页面HTTP/1.1为访问的为1.1还是HTTP1.0

Host:后指定主机的地址