学习资源:燕十八的http课程(公开形式的资源,请自行查找) 一二节
我的笔记:
Http笔记 - 一些重点
------------概述:-----------------
原始状态 客户端 和 服务器 没有链接
客户端 建立连接 发送请求
服务端 回沿连接 响应请求
断开连接
------------观察--------------------------
打开chrome 打到network 下的 header选项卡
RequestHeader 请求头
ResponseHeader响应头
-----Http请求信息和响应信息-格式------
请求:
①请求行
|-----请求方法 GET POST PUSH DELETE TRACE OPTIONS
|-----请求路径
|-----所用协议
②请求头信息
③请求主体信息
-------telnet---GET测试----------------
浏览器可以发送HTTP协议,那浏览器一定要浏览器来发送麽?
answer : no . it only is a 协议 ,just to send
打开wamp,准备好服务器环境
打开cmd,实验telnet,测试本机ip = 121.249.13.202
telnet 本机ip 端口号【默认80】 回车
ctrl+] 进入回显 再回车
输入
GET /test.php HTTP/1.1
Host : localhost
连续俩次回车,即可以得到主体信息
GET / HTTP/1.1 请求行
Host : localhost 请求头部信息
【头信息结束之后有一个空行,以和主体信息做区分】
--------POST请求方式--------------------
POST /test.php HTTP/1.1
Host:localhost
Content-type:application/x-www-form-urlencoded
Content-length:30
username=zhangsan&age=28
--------个人理解(1)---------------------
个人理解:浏览器的实质也是如此,通过http协议将主体消息发送给服务器,服务器文件处理数据,然后响应,响应过程中通过响应行声明协议、状态码、状态文字,然后返回响应头信息,之后返回响应的主题信息
---------------响应--------------
响应行(协议 状态码 状态文字)
响应头信息(格斯为key:value)
空行
主体信息(也可能没有)
例子:
HTTP/1.1 200 OK
Date:Fri,18 Mar 2016 04:56:28 GMT
Server:Apache/2.4.9 (Win32) PHP/5/5/12
X-Power-By:PHP/5.5.12
Content-Length:17
Content-Type:text/html
----------------------------------
请示方法有哪些?
GET POST HEAD PUT TRACE DELETE OPTIONS
注意:这些请求方法虽然HTTP协议里规定的,但是Web Server中未必允许或者支持这些方法
HEAD 和 GET基本一致,只是不返回内容
such as:只是确定服务器中某图片是否依然存在,可以使用HEAD
--------------状态码---------------------
状态码:是用来反应服务器响应情况的
最常见的如 200 OK,404 NOT FOUND
状态码 定义 说明
1** 信息 接收到请求,继续处理
2** 成功 操作成功地收到,理解和接收
3** 重定向 为了完成请求,必须采取进一步措施
4** 客户端错误 请求的语法有错误或不能完全被满足
5** 服务器错误 服务器无法完成明显有效的请求
可移步这里
http://www.blogjava.net/zjusuyong/articles/304788.html
/*********面试需要记住************/
200 - 服务器成功返回相应
301/2 - 永久重定向
304 - Not Modified 未修改 取得是缓存
(可参考燕十八的HTTP课程第二节中的测试实验以加深理解)
(实际上测试很简单,在telnet的请求头上加上标签)
失败的状态码
404 - 请求的网页不存在
500 - 服务器内部错误
503 - 服务器暂时不可用
如果post请求遭遇服务器重定向时发生数据无法转发的情况,请在重定向的时候强制使用307的状态码,如
header("Location:你要重定向的url",true,307);